<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Optimalizace aplikací distribuce teTeX</title>
      <link rel="stylesheet" href="docbook.css" type="text/css"/>
      <meta name="generator" content="DocBook XSL Stylesheets V1.69.1"/>
      <meta name="description" content="teTeX je jednou z nejrozšířenějších distribucí TeXu a přidružených programů. Některé jeho součásti jsou poměrně výpočetně náročné (např. generování vzorů pro dělení slov). Cílem tohoto projektu je analyzovat možnosti optimalizace těchto programů a tyto poznatky prakticky ověřit. Z teTeXu byly pro tyto účely vybrány programy PatGen, TeX, eTeX, pdfTeX, pdfeTeX, Omega a dvipdfm. Hlavním zájmem bylo optimalizovat programy pro generování vzorů. Kromě programu PatGen byl analyzován také program OPatGen."/>
      <meta name="keywords" content="TeX, teTeX, Optimalizace, Generování vzorů, PatGen, OPatGen, UPatGen"/>
   </head>
   <body>
      <div class="book" lang="cs">
         <div>
            <div>
               <div>
                  <p class="university">MASARYKOVA UNIVERZITA</p>
                  <p class="faculty">FAKULTA INFORMATIKY</p>
                  <div class="facultylogo">
                     <img src="fi-logo.png" alt="FAKULTA INFORMATIKY"/>
                  </div>
                  <h1 class="title">
                     <a class="d0e1"/>Optimalizace aplikací distribuce teTeX</h1>
               </div>
               <div>
                  <h2 class="subtitle">Bakalářská práce</h2>
               </div>
               <div>
                  <div class="author">
                     <h3 class="author">
                        <span class="firstname">Marek</span> 
                        <span class="surname">Lipovčan</span>
                     </h3>
                  </div>
               </div>
               <div>
                  <p class="pubdate">Brno, jaro 2003</p>
                  <div class="declaration">
                     <p class="title">
                        <b>Prohlášení</b>
                     </p>
                     <p>Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.</p>
                  </div>
                  <div class="advisor">
                     <p class="title">
                        <b>Vedoucí práce</b>
                     </p>
                     <p>RNDr. Petr Sojka</p>
                  </div>
               </div>
               <div>
                  <div class="abstract">
                     <p class="title">
                        <b>Shrnutí</b>
                     </p>
                     <p>teTeX je jednou z nejrozšířenějších distribucí TeXu a přidružených programů. Některé jeho součásti jsou poměrně výpočetně náročné (např. generování vzorů pro dělení slov). Cílem tohoto projektu je analyzovat možnosti optimalizace těchto programů a tyto poznatky prakticky ověřit. Z teTeXu byly pro tyto účely vybrány programy <span class="application">PatGen</span>, <span class="application">TeX</span>, <span class="application">eTeX</span>, <span class="application">pdfTeX</span>, <span class="application">pdfeTeX</span>, <span class="application">Omega</span> a <span class="application">dvipdfm</span>. Hlavním zájmem bylo optimalizovat programy pro generování vzorů. Kromě programu PatGen byl analyzován také program <span class="application">OPatGen</span>.</p>
                  </div>
               </div>
            </div>
            <hr/>
         </div>
         <div class="toc">
            <p>
               <b>Obsah</b>
            </p>
            <dl>
               <dt>
                  <span class="preface">
                     <a href="#d0e62">Předmluva</a>
                  </span>
               </dt>
               <dt>
                  <span class="chapter">
                     <a href="#ch01">1. Úvod do optimalizace</a>
                  </span>
               </dt>
               <dd>
                  <dl>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0101">Výhody optimalizace</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0102">Nevýhody optimalizace</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0103">Jak na to</a>
                        </span>
                     </dt>
                     <dd>
                        <dl>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec010301">Optimalizace hardware</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec010302">Optimalizace kompilací</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec010303">Optimalizace použitím rychlejších knihoven</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec010304">Optimalizace zdrojového kódu.</a>
                              </span>
                           </dt>
                        </dl>
                     </dd>
                  </dl>
               </dd>
               <dt>
                  <span class="chapter">
                     <a href="#ch02">2. Úvod do systému teTeX</a>
                  </span>
               </dt>
               <dd>
                  <dl>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0201">Hlavní komponenty</a>
                        </span>
                     </dt>
                     <dd>
                        <dl>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec020101">Kpathsea</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec020102">Web2c</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec020103">Rozšíření TeXu</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec020104">Další podpůrné nástroje a skripty</a>
                              </span>
                           </dt>
                        </dl>
                     </dd>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0202">Adresářová struktura teTeXu</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0203">Jak vypadají zdrojové kódy</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0204">Jak se překládá teTeX pod Linuxem</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0205">Konfigurace</a>
                        </span>
                     </dt>
                  </dl>
               </dd>
               <dt>
                  <span class="chapter">
                     <a href="#ch03">3. Optimalizace aplikací distribuce teTeX pomocí kompilace</a>
                  </span>
               </dt>
               <dd>
                  <dl>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0301">Hardware použitý pro testy</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0302">Aplikace vybrané pro testy</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0303">Testovací soubory</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0304">Parametry překladů</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0305">Struktura adresáře s testy</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0306">Postup testování</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0307">Výsledky</a>
                        </span>
                     </dt>
                     <dd>
                        <dl>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec030701">Stroj č. 1 (Athlon XP 1700+)</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec030702">Stroj č. 2 (Intel Mobile Pentium III 800)</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec030703">Stroj č. 3 (Athlon XP 1600+)</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec030704">Stroj č. 4 (2 × Intel Xeon 2,2)</a>
                              </span>
                           </dt>
                        </dl>
                     </dd>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0308">Doporučení</a>
                        </span>
                     </dt>
                  </dl>
               </dd>
               <dt>
                  <span class="chapter">
                     <a href="#ch04">4. Profilování</a>
                  </span>
               </dt>
               <dd>
                  <dl>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0401">Vytvoření a analýza profilu</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0402">Ukázky profilování</a>
                        </span>
                     </dt>
                     <dd>
                        <dl>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec040201">Profily aplikace <span class="application">PatGen</span>
                                 </a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec040202">Profily aplikace <span class="application">OPatGen</span>
                                 </a>
                              </span>
                           </dt>
                        </dl>
                     </dd>
                  </dl>
               </dd>
               <dt>
                  <span class="chapter">
                     <a href="#ch05">5. Generování vzorů dělení slov</a>
                  </span>
               </dt>
               <dd>
                  <dl>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0501">Vzory</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0502">Generování vzorů</a>
                        </span>
                     </dt>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0503">Přehled existujících programů pro generování vzorů</a>
                        </span>
                     </dt>
                     <dd>
                        <dl>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec050301">
                                    <span class="application">PatGen</span>
                                 </a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec050302">
                                    <span class="application">OPatGen</span>
                                 </a>
                              </span>
                           </dt>
                        </dl>
                     </dd>
                     <dt>
                        <span class="sect1">
                           <a href="#sec0504">
                              <span class="application">UPatGen</span>
                           </a>
                        </span>
                     </dt>
                     <dd>
                        <dl>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec050401">Hlavní cíle</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec050402">Návrh</a>
                              </span>
                           </dt>
                           <dt>
                              <span class="sect2">
                                 <a href="#sec050403">Implementace</a>
                              </span>
                           </dt>
                        </dl>
                     </dd>
                  </dl>
               </dd>
               <dt>
                  <span class="chapter">
                     <a href="#ch06">6. Závěr</a>
                  </span>
               </dt>
               <dt>
                  <span class="appendix">
                     <a href="#app01">A. Parametry překladu</a>
                  </span>
               </dt>
               <dt>
                  <span class="appendix">
                     <a href="#app02">B. Kompletní výsledky testů</a>
                  </span>
               </dt>
               <dt>
                  <span class="appendix">
                     <a href="#app03">C. Kompletní ukázky profilů</a>
                  </span>
               </dt>
               <dt>
                  <span class="appendix">
                     <a href="#app04">D. Obsah CD</a>
                  </span>
               </dt>
               <dt>
                  <span class="bibliography">
                     <a href="#d0e12013">Bibliografie</a>
                  </span>
               </dt>
            </dl>
         </div>
         <div class="list-of-figures">
            <p>
               <b>Seznam obrázků</b>
            </p>
            <dl>
               <dt>2.1. <a href="#obr020301">Transformace z formátu WEB</a>
               </dt>
               <dt>5.1. <a href="#obr05040201">UPatGen – schéma</a>
               </dt>
            </dl>
         </div>
         <div class="list-of-tables">
            <p>
               <b>Seznam tabulek</b>
            </p>
            <dl>
               <dt>3.1. <a href="#tab030401">Parametry překladu</a>
               </dt>
               <dt>3.2. <a href="#tab03070101">Výsledky ze stroje č. 1</a>
               </dt>
               <dt>3.3. <a href="#tab03070201">Výsledky ze stroje č. 2</a>
               </dt>
               <dt>3.4. <a href="#tab03070301">Výsledky ze stroje č. 3</a>
               </dt>
               <dt>3.5. <a href="#tab03070401">Výsledky ze stroje č. 4</a>
               </dt>
               <dt>A.1. <a href="#tabA01">Parametry překladu pro stroj č. 1 (Athlon XP 1700+)</a>
               </dt>
               <dt>A.2. <a href="#tabA02">Parametry překladu pro stroj č. 2 (Intel Mobile Pentium III 800)</a>
               </dt>
               <dt>A.3. <a href="#tabA03">Parametry překladu pro stroj č. 3 (Athlon XP 1600+)</a>
               </dt>
               <dt>A.4. <a href="#tabA04">Parametry překladu pro stroj č. 4 (2 × Intel Xeon)</a>
               </dt>
               <dt>B.1. <a href="#tabB0101">Doby překladů (s) pro stroj č. 1 (Athlon XP 1700+)</a>
               </dt>
               <dt>B.2. <a href="#tabB0102">Doby testů (s) pro stroj č. 1 (Athlon XP 1700+)</a>
               </dt>
               <dt>B.3. <a href="#tabB0103">Velikosti přeložených programů (kB) pro stroj č. 1 (Athlon XP 1700+)</a>
               </dt>
               <dt>B.4. <a href="#tabB0201">Doby překladů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)</a>
               </dt>
               <dt>B.5. <a href="#tabB0202">Doby testů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)</a>
               </dt>
               <dt>B.6. <a href="#tabB0203">Velikosti přeložených programů (kB) pro stroj č. 2 (Intel Mobile Pentium III 800)</a>
               </dt>
               <dt>B.7. <a href="#tabB0301">Doby překladů (s) pro stroj č. 3 (Athlon XP 1600+)</a>
               </dt>
               <dt>B.8. <a href="#tabB0302">Doby testů (s) pro stroj č. 3  (Athlon XP 1600+)</a>
               </dt>
               <dt>B.9. <a href="#tabB0303">Velikosti přeložených programů (kB) pro stroj č. 3 (Athlon XP 1600+)</a>
               </dt>
               <dt>B.10. <a href="#tabB0401">Doby překladů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)</a>
               </dt>
               <dt>B.11. <a href="#tabB0402">Doby testů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)</a>
               </dt>
               <dt>B.12. <a href="#tabB0403">Velikosti přeložených programů (kB) pro stroj č. 4 (2 × Intel Xeon 2,2)</a>
               </dt>
            </dl>
         </div>
         <div class="preface" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="d0e62"/>Předmluva</h2>
                  </div>
               </div>
            </div>
            <p>
           Většina dokumentů je v dnešní době vytvořena a zpracovávána v elektronické formě. Mezi nejpoužívanější programy pro tvorbu dokumentů patří bezesporu TeX (obzvláště v akademické sféře). Vzhledem k době vzniku a díky kvalitnímu zpracování nepatří TeX mezi programy, které by kladly vysoké nároky na použitý hardware, obzvláště dnes, kdy jsou vysoce výkonné počítače dostupné i běžnému uživateli. Stále ale existují úkoly, jejichž zpracování je časově náročnější. Proto je velmi užitečné vědět, jestli lze tyto aplikace optimalizovat a zdali to vůbec má smysl.
   </p>
            <p>
           Pro kvalitní a uhlazenou sazbu textů je nutné použít kvalitní algoritmus pro dělení slov. TeX tento problém vyřešil vysoce efektivní a elegantní cestou – pomocí vzorů. Prvním programem pro generování těchto vzorů byl PatGen. Ten má ale několik významných omezení. Mezi největší problémy patří bezesporu omezení na 8-bitové kódování (obzvláště ve spojení se systémem Omega). V nedávné době vznikl na Fakultě informatiky projekt zabývající se tímto problémem [<span class="citation">Antos</span>]. Výsledkem je program OPatGen. Vedlejším produktem čistého návrhu tohoto programu je ale výrazné snížení rychlosti generování (zhruba 10 × oproti PatGenu). Zde se jeví jako velmi praktické zjištění, lze-li tento program optimalizací urychlit.
   </p>
            <p>
           V praktické části jsem pomocí testů zjistil, jaký vliv na rychlost uvedených programů mají parametry překladu a pokusil se nalézt nejvhodnější z nich. Dále jsem se pokusil dokázat, že lze vytvořit program pro generování vzorů, který by měl stejné schopnosti jako OPatGen, ale přitom by nebyla degradována jeho výkonnost. Výsledkem je návrh a částečná implementace programu UPatGen.
   </p>
         </div>
         <div class="chapter" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="ch01"/>Kapitola 1. Úvod do optimalizace</h2>
                  </div>
               </div>
            </div>
            <p>
		Doby, kdy optimalizace byla nezbytná kvůli výkonnosti počítačů, jsou už dávno pryč. Současné počítače jsou již natolik rychlé, že pro většinu běžných uživatelských programů to nemá smysl. Nicméně stále existuje spousta speciálních aplikací, pro které je optimalizace více než vhodná. Nejprve bych se pokusil nastínit důvody, proč a kdy optimalizovat a proč to někdy není vhodné. Dále uvedu metody, jak to provést.
	</p>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0101"/>Výhody optimalizace</h2>
                     </div>
                  </div>
               </div>
               <p>
			Jedním z hlavních důvodů pro optimalizaci je samozřejmě urychlení programu. Toto má smysl pouze pro programy, jejichž rychlost je podstatná. Často jsou důležitější spíše paměťové nároky než výpočetní výkon. V takovém případě má význam optimalizovat program pro úsporu paměti. Někdy je také nutné provést optimalizaci kvůli specifickému hardware.
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0102"/>Nevýhody optimalizace</h2>
                     </div>
                  </div>
               </div>
               <p>
			Mezi hlavní nevýhody patří časová náročnost – optimalizovat program není triviální. Je důležité si rozmyslet, jestli má vůbec cenu strávit nad tím další čas. Optimalizace navíc v drtivé většině přidá další složitost a i přehledný program se může lehce změnit v programátorskou noční můru. Častým produktem optimalizace je také velké kvantum nově vzniklých chyb, jejichž odstranění si vyžádá další čas navíc. Mnohé optimalizace mohou způsobit problémy s portabilitou. Je dobré vyhnout se „<span class="quote">nečistým trikům</span>“, které sice program urychlí, ale způsobí pozdější problémy se stabilitou a přenositelností.
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0103"/>Jak na to</h2>
                     </div>
                  </div>
               </div>
               <p>
			Někteří programátoři zastávají názor, že pokud chceme rychlost, musíme to napsat v assembleru. Tento přístup ale mnohdy vede do pekel. Kód v assembleru se velmi špatně čte, nehledě k tomu, že současné překladače generují často lepší kód než ten ručně psaný. Jak tedy optimalizovat? Každému kódu by měl předcházet návrh programu. Když vytvoříme dobré programové schéma včetně popisu datových struktur, při kterém budeme myslet na pozdější optimalizaci, vše půjde rychleji. V prvé řadě musíme mít program plně funkční. Nejprve tedy napíšeme program bez velkých optimalizací, řádně ho odladíme, ověříme správnost a teprve poté přijde na řadu optimalizace. Je vhodné použít ladící a pomocné nástroje jako jsou <span class="application">gdb</span>
                  <sup>[<a id="fn010301" href="#ftn.fn010301">1</a>]</sup>, <span class="application">lclint</span>
                  <sup>[<a id="fn010302" href="#ftn.fn010302">2</a>]</sup>, <span class="application">Electric Fence</span>
                  <sup>[<a id="fn010303" href="#ftn.fn010303">3</a>]</sup> a další. Optimalizace většinou udělá program hůře čitelným, proto je skutečně nutné odstranit všechny chyby ještě před ní.
		</p>
               <p>
			Dalším krokem by mělo být určení slabých míst – částí kódu, jejichž zpracování zabere nejvíce systémových prostředků. Tyto prostředky dělíme do 3 hlavních skupin: procesorový čas, použitá operační paměť, I/O operace. V případě optimalizace zdrojových kódů je důležité najít vhodné místo pro optimalizaci. Jestliže například optimalizujeme funkci zabírající 50 % celkového času a podaří se nám ji dvakrát zrychlit, pak výsledný program poběží o 25 % rychleji. Jestliže totéž uděláme s funkcí, která zabere pouze 10 % celkového času, pak výsledkem bude zrychlení o zhruba 5 %. Je zřejmé, že nalezení vhodného místa je důležité pro úspěšnou optimalizaci. K tomuto účelu se používá technika zvaná <span class="emphasis">
                     <em>profilování</em>
                  </span> (viz <a href="#ch04" title="Kapitola 4. Profilování">4 – „<i>Profilování</i>“</a>). Příkladem aplikací pro vytváření profilů je např gprof. Abychom mohli takto program analyzovat, musíme jej přeložit s podporou pro profilování.
		</p>
               <p>
			Existuje několik základních metod pro optimalizaci v závislosti na dostupných prostředcích, předpokladech a požadavcích. Lze je rozdělit na 2 nejvýznamnější skupiny:
			</p>
               <div class="itemizedlist">
                  <ul type="disc">
                     <li>
                        <p>optimalizace bez modifikace zdrojových kódů;</p>
                     </li>
                     <li>
                        <p>optimalizace modifikací zdrojových kódů.</p>
                     </li>
                  </ul>
               </div>
               <p>
			Následuje popis těch nejdůležitějších z obou skupin (je zcela zřejmé, do které skupiny daná metoda patří). Všechny zde uvedené lze různě kombinovat.
		</p>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec010301"/>Optimalizace hardware</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Jedná se o nejjednodušší metodu. Vzhledem k rychlému vývoji výpočetní techniky je velmi pravděpodobné, že výměnou příslušného hardware můžeme vyřešit náš problém. Pro urychlení výpočtu algoritmů je vhodné použít rychlý procesor, v případě nedostatku odkládacího prostoru pak paměť, případně pevný disk. Lze ale také pořídit speciální obvody, které budou na úrovni hardware provádět některé funkce našeho programu. Typickým příkladem takového obvodu je grafický akcelerátor na grafické kartě.
			</p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec010302"/>Optimalizace kompilací</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Většina současných překladačů nabízí možnosti pro vyladění překladu formou specifikování optimalizačních parametrů. Existují jak obecné parametry, tak speciální pro konkrétní účely. Tyto parametry se liší v závislosti na použitém překladači. Pokud jich máme více na výběr, je vhodné použít ten, který bude pro náš program vytvářet nejrychlejší kód. Uvedu popis nejpoužívanějších parametrů pro překladač <span class="application">gcc</span> verze 3.2.
			</p>
                  <div class="variablelist">
                     <dl>
                        <dt>
                           <span class="term">–g</span>
                        </dt>
                        <dd>
                           <p> 
						Přidá informace nutné pro ladění.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–Wall</span>
                        </dt>
                        <dd>
                           <p> 
						Zapne hlášení nejběžnějších chyb.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–O0</span>
                        </dt>
                        <dd>
                           <p> 
						Vypne optimalizaci.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–O1, </span>
                           <span class="term">–O2, </span>
                           <span class="term">–O3</span>
                        </dt>
                        <dd>
                           <p> 
						Zapne optimalizaci (O1 nejnižší optimalizace, O3 nejvyšší optimalizace). Tento parametr pouze vyvolá předdefinovanou množinu optimalizačních parametrů.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–Os</span>
                        </dt>
                        <dd>
                           <p> 
						Zapne optimalizaci pro co nejmenší velikost výsledného kódu.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–march, </span>
                           <span class="term">–mcpu</span>
                        </dt>
                        <dd>
                           <p> 
						Produkuje kód vyladěný pro danou architekturu/procesor (i386, i686, pentiumpro, k6, athlon–xp). Umožní použití specifických instrukcí pro danou architekturu. Může produkovat kód, který nepoběží na nižší platformě.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–fomit–frame–pointer</span>
                        </dt>
                        <dd>
                           <p>
						Uvolní jeden registr pro jiné použití. Na některých platformách tento parametr znemožňuje ladění.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–ffloat–store</span>
                        </dt>
                        <dd>
                           <p> 
						Tento parametr zabraňuje ukládání některých proměnných s pohyblivou desetinnou čárkou do registrů. Použije se v případě, že daná architektura poskytuje větší přesnost než je potřeba.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–fforce–mem</span>
                        </dt>
                        <dd>
                           <p> 
						Před provedením operace zkopíruje operand do registru.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–fforce–addr</span>
                        </dt>
                        <dd>
                           <p> 
						Před provedením operace zkopíruje adresu paměti do registru.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–finline–functions</span>
                        </dt>
                        <dd>
                           <p> 
						Vloží jednoduché funkce přímo tam, odkud se volají (inline).
						</p>
                        </dd>
                        <dt>
                           <span class="term">–ffast–math</span>
                        </dt>
                        <dd>
                           <p> 
						Urychlí matematické funkce. Může vygenerovat kód produkující špatné výsledky (u programů vyžadujících striktní dodržování IEEE/ISO pravidel). Na druhou stranu může program výrazně urychlit.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–fstrength–reduce, </span>
                           <span class="term">–frerun–loop–opt, </span>
                           <span class="term">–funroll–loops</span>
                        </dt>
                        <dd>
                           <p> 
						Pokusí se optimalizovat smyčky.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–fthread–jumps</span>
                        </dt>
                        <dd>
                           <p>
						Optimalizuje skoky.
						</p>
                        </dd>
                        <dt>
                           <span class="term">–fexpensive–optimizations</span>
                        </dt>
                        <dd>
                           <p>
						Provede více menších optimalizací, které ale mohou být být časově náročnější.
						</p>
                        </dd>
                     </dl>
                  </div>
                  <p>
				Podrobnější informace k těmto i dalším parametrům lze nalézt v manuálové stránce překladače <span class="application">gcc</span>, případně v článku [<span class="citation">Myth</span>].
			</p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec010303"/>Optimalizace použitím rychlejších knihoven</h3>
                        </div>
                     </div>
                  </div>
                  <p>
			Jestliže náš program využívá nějaké staticky nebo dynamicky linkované knihovny, je vhodné se podívat, zda neexistují ekvivalentní knihovny, které jsou více optimalizované, případně si tyto knihovny přeložit.
			</p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec010304"/>Optimalizace zdrojového kódu.</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Je důležité uvědomit si, co daný úsek kódu vlastně dělá a jestli toto nelze řešit lépe. To platí zejména o výběru vhodných algoritmů pro třídění (bubble sort × quick sort, merge sort) nebo vyhledávání (sekvenční, indexované vyhledávání, hešování, KMP, …). Podstatného zrychlení lze také dosáhnout použitím vhodných datových struktur. Užitečná je analýza všech cyklů a míst větvení programu. Výhodně optimalizovat se také dají rekurzivní funkce. Vhodné je také minimalizovat počet proměnných (nemělo by to ale být na úkor přehlednosti programu).
			</p>
                  <p>
				Kromě optimalizace algoritmů je také důležité optimalizovat přístup k paměti. Výrazného urychlení je možné dosáhnout zajištěním co nejlepší lokality odkazů. Tím je myšlena schopnost programu používat adresy, které jsou blízko sebe (v čase a umístění). Lze toho dosáhnout např. rozdělením používaných datových struktur na více (méně) používané a podle toho pro ně alokovat paměť. Většina platforem se ale liší ve velikosti použité cache a stránek, proto je tato optimalizace obecně obtížná. Není vhodné předávat velké objemy dat hodnotou, lepší je použití odkazu. Při použití dynamicky alokované paměti je praktické předpovídat potřebné objemy dat a paměť alokovat případně předem.
			</p>
                  <p>
				Výrazné zpomalení programu mohou způsobit časté I/O operace (program musí čekat). To se dá vylepšit pomocí sdružení těchto operací nebo použitím vyrovnávací paměti. Pokud je to možné, je vhodné používat asynchronní I/O operace.
			</p>
                  <p>
				Vysoce užitečné je psát kód s použitím více vláken („<span class="quote">Multithreading</span>“), kdykoli je to vzhledem k povaze programu možné. Významně tak lze urychlit zpracování na strojích s více procesory. Tato technika je ale užitečná i na běžných jednoprocesorových strojích – některé současné procesory obsahují vylepšenou podporu pro vícevláknové zpracování (např. technologie Intel HyperThreading<sup>©</sup>), lze to také využít pro urychlení I/O operací (program může mezitím provádět jiné části kódu) atd. Velkým problémem je ale zatím neexistence univerzálního multiplatformního rozhraní pro vícevláknové zpracování. Nicméně vzhledem k výhodám je vhodné si rozmyslet, jestli to nelze v našem programu využít.
			</p>
               </div>
            </div>
            <div class="footnotes">
               <br/>
               <hr width="100" align="left"/>
               <div class="footnote">
                  <p>
                     <sup>[<a id="ftn.fn010301" href="#fn010301">1</a>] </sup>
                     <a href="http://www.gnu.org/directory/gdb.html" target="_top">http://www.gnu.org/directory/gdb.html</a>
                  </p>
               </div>
               <div class="footnote">
                  <p>
                     <sup>[<a id="ftn.fn010302" href="#fn010302">2</a>] </sup>
                     <a href="http://www.splint.org/" target="_top">http://www.splint.org/</a>
                  </p>
               </div>
               <div class="footnote">
                  <p>
                     <sup>[<a id="ftn.fn010303" href="#fn010303">3</a>] </sup>
                     <a href="ftp://ftp.perens.com/pub/ElectricFence/" target="_top">ftp://ftp.perens.com/pub/ElectricFence/</a>
                  </p>
               </div>
            </div>
         </div>
         <div class="chapter" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="ch02"/>Kapitola 2. Úvod do systému teTeX</h2>
                  </div>
               </div>
            </div>
            <p>
		teTeX [<span class="citation">Tetex</span>] je distribuce TeXu a dalších programů (pdfTeX, Omega, LaTeX, dvips, …) udržovaná Thomasem Esserem. Základ tvoří distribuce Web2c autorů Karla Berryho a Olafa Webera. Jestliže používáte Linux, pak s nejvyšší pravděpodobností právě teTeX tvoří základ podpory TeXu ve vašem systému. V současné době je aktuální stabilní verzí systém teTeX 2.0.
	</p>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0201"/>Hlavní komponenty</h2>
                     </div>
                  </div>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec020101"/>Kpathsea</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Kpathsea je základní knihovna pro celou distribuci. Poskytuje aplikacím funkce pro jednoduché a rychlé hierarchické vyhledávání souborů podle jejich jména. Dále jsou s ní spojeny některé další nástroje (<span class="application">kpsewhich</span>, …).
			</p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec020102"/>Web2c</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Web2c je implementace TeXu pro různé platformy (Unix, <span class="trademark">MS Windows</span>™, Mac, DOS, …). Kromě samotného TeXu obsahuje ještě programy MetaFont, MetaPost, BibTeX, nástroje pro konverzi mezi obrazovými formáty, nástroje pro práci s formátem DVI, program pro generování vzorů PatGen a také programy pro generování kódu a dokumentace tangle a weave.
			</p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec020103"/>Rozšíření TeXu</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Kromě standardního TeXu obsahuje teTeX také další jeho rozšíření. Zejména se jedná o tyto programy: <span class="application">pdfTeX</span> – program pro přímé vytváření souborů ve formátu <span class="trademark">Adobe</span>™ PDF, eTeX – rozšíření TeXu o další primitiva, <span class="application">Omega</span> (Ω) – TeX s podporou Unicode.
			</p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec020104"/>Další podpůrné nástroje a skripty</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Zde patří další programy pro práci s formátem DVI – dvips, dvilj, xdvi, dvipdfm. Dále v této distribuci nalezneme spoustu podpůrných skriptů a nástrojů pro dokumentaci, konfiguraci a práci s fonty – programy <span class="application">texdoc, texdoctk, texconfig, allcm, allec, allneeded, fontimport</span>. Podrobný popis těchto nástrojů lze získat pomocí příkazu <span>
                        <strong class="command">texdoc &lt;jméno_programu&gt;</strong>
                     </span>.
			</p>
               </div>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0202"/>Adresářová struktura teTeXu</h2>
                     </div>
                  </div>
               </div>
               <p>
			Stromová struktura teTeXu odpovídá standardu TDS (TeX Directory Structure)<sup>[<a id="fn020201" href="#ftn.fn020201">4</a>]</sup>. Základní struktura vypadá následovně:
			</p>
               <div class="variablelist">
                  <dl>
                     <dt>
                        <span class="term">
                           <code class="filename">tex/&lt;formát&gt;/&lt;balík&gt;/</code>
                        </span>
                     </dt>
                     <dd>
                        <p>makra</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">font/&lt;typ&gt;/&lt;dodavatel&gt;/&lt;druh_písma&gt;</code>
                        </span>
                     </dt>
                     <dd>
                        <p>fonty</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">metafont/&lt;dodavatel&gt;/</code>
                        </span>
                     </dt>
                     <dd>
                        <p>soubory MetaFontu</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">doc/&lt;balík&gt;/</code>
                        </span>
                     </dt>
                     <dd>
                        <p>dokumentace</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">source/&lt;balík&gt;/</code>
                        </span>
                     </dt>
                     <dd>
                        <p>zdrojové kódy</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">bibtex/{bst,bib}/&lt;balík&gt;/</code>
                        </span>
                     </dt>
                     <dd>
                        <p>soubory BibTeXu</p>
                     </dd>
                  </dl>
               </div>
               <p>
		
               </p>
               <p>
		Proměnné zde znamenají:
		</p>
               <p>
			
                  <code class="filename">&lt;formát&gt;</code> — název formátu TeXu (<code class="filename">latex, amstex, ...</code>)
		</p>
               <p>
			
                  <code class="filename">&lt;balík&gt;</code> — název příslušného balíku (<code class="filename">babel, seminar, ...</code>)
		</p>
               <p>
			
                  <code class="filename">&lt;typ&gt;</code> — název typu fontu (<code class="filename">pk, tfm, afm, ...</code>)
		</p>
               <p>
			
                  <code class="filename">&lt;dodavatel&gt;</code> — název dodavatele fontu (<code class="filename">adobe, urw, ...</code>)
		</p>
               <p>
			
                  <code class="filename">&lt;druh_písma&gt;</code> — název druhu písma (<code class="filename">times, cm, ...</code>)
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0203"/>Jak vypadají zdrojové kódy</h2>
                     </div>
                  </div>
               </div>
               <p>
			Většina programů z této distribuce je napsána pomocí nástrojů literárního programování. Tento název se používá pro programové nástroje, které v sobě spojují psaní kódu spolu s jeho dokumentací. V případě TeXu se nejvíce používají WEB [<span class="citation">Web</span>] nebo CWEB [<span class="citation">CWeb</span>]. Z takto napsaného programu se vygeneruje dokumentace ve formátu TeX (pomocí programu <span class="application">weave</span>) a zdrojový kód pomocí programu <span class="application">tangle</span> (<span class="application">ctangle</span> pro CWEB). WEB umožňoval psát a generovat kód v jazyce PASCAL, CWEB používá C nebo C++. Existuje také možnost jednoduše vytvářet patche ve formátu <code class="filename">changefile (.ch)</code>. Pokud jich je více, lze je pomocí programu <span class="application">tie</span> aplikovat na zdrojový soubor a vytvořit nový aktuální soubor ve formátu WEB. Vygenerovaný kód v PASCALu se nejprve převede do C pomocí nástroje <span class="application">web2c</span>, respektive jeho obslužného skriptu <span class="application">convert</span>. V případě CWEBU se přímo generuje kód v C (C++). Takto vytvořený kód se poté přeloží systémovým překladačem jazyka C. Vygenerovanou dokumentaci lze přeložit pomocí TeXu. Názorně tyto transformace popisuje následující obrázek (<a href="#obr020301" title="Obrázek 2.1. Transformace z formátu WEB">2.1 – „Transformace z formátu WEB“</a>).
		</p>
               <p>
			
               </p>
               <div class="figure-float">
                  <div class="figure">
                     <a id="obr020301"/>
                     <p class="title">
                        <b>Obrázek 2.1. Transformace z formátu WEB</b>
                     </p>
                     <div class="mediaobject">
                        <img src="web2code.pdf" alt="Transformace z formátu WEB"/>
                     </div>
                  </div>
               </div>
               <p>
		
               </p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0204"/>Jak se překládá teTeX pod Linuxem</h2>
                     </div>
                  </div>
               </div>
               <p>
			Do dočasného adresáře se rozbalí zdrojové kódy samotného teTeXu (balík <code class="filename">tetex-src</code>). Potom se spustí <span>
                     <strong class="command">configure</strong>
                  </span>, který vytvoří soubory <code class="filename">Makefile</code> pro překlad. Lze mu zadat parametry pro úpravu distribuce. Lze zvolit, které balíky se mají překládat (<code class="option">--without-BALÍK</code>), umístění souborů (<code class="option">--prefix=CESTA, --[.*]dir=CESTA)</code>, zda se mají vytvářet spustitelné soubory v adresáři <code class="filename">PREFIX/bin/PLATFORMA/</code> nebo přímo v adresáři <code class="filename">PREFIX/bin/</code> a spousta dalších. Poté se příkazem <span>
                     <strong class="command">make</strong>
                  </span> spustí samotný překlad.
		</p>
               <p>
			Postup kompilace:
			</p>
               <div class="orderedlist">
                  <ol type="1">
                     <li>
                        <p>Jako první se přeloží vyžadované knihovny (<code class="filename">libwww, libncurses, libz, libpng, libxpdf, libGoo, libt1, libtype1, libtxi</code>).</p>
                     </li>
                     <li>
                        <p>Poté se přeloží nástroje pro dokumentaci ve formátu <code class="filename">info</code> a nástroj pro zobrazování dialogů (<code class="filename">dialog</code>).</p>
                     </li>
                     <li>
                        <p>Následují knihovna a nástroje <em class="glossterm">kpathsea</em>.</p>
                     </li>
                     <li>
                        <p>Nyní se přeloží nástroje web2c. Nejprve samotná aplikace <span class="application">web2c</span> (konvertor PASCALU do C), poté nástroje <span class="application">tie</span>, <span class="application">tangle</span> a <span class="application">ctangle</span>, aplikace pro filtrování dokumentace <span class="application">weave</span> a <span class="application">cweave</span>. Dále následují také ostatní aplikace z tohoto balíku (samotný <span class="application">TeX</span>, <span class="application">eTeX</span>, <span class="application">MetaFont</span>, nástroje pro DVI, <span class="application">pdfTeX</span>, <span class="application">PatGen</span> atd.).</p>
                     </li>
                     <li>
                        <p>Následuje zbytek aplikací z adresáře <code class="filename">texk</code> (<span class="application">dvips</span>, <span class="application">dvipdfm</span> atd.).</p>
                     </li>
                  </ol>
               </div>
               <p>
		
               </p>
               <p>
			Následuje případná instalace daných souborů. Nejprve se do požadovaného adresáře (<code class="filename">PREFIX/share/</code>) rozbalí strom <code class="filename">texmf</code> (z balíku <code class="filename">tetex-texmf</code>). Poté se provede instalace aplikací teTeXu pomocí příkazu <span>
                     <strong class="command">make install</strong>
                  </span>.
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0205"/>Konfigurace</h2>
                     </div>
                  </div>
               </div>
               <p>
			Počáteční poinstalační konfigurace se provede příkazem <span>
                     <strong class="command">texconfig confall</strong>
                  </span>. Pro další nastavení lze použít program <span class="application">texconfig</span> (bez parametrů se spustí v interaktivním režimu – využívá knihovnu ncurses).
		</p>
               <p>
			Konfigurační soubory jsou umístěny v adresáři <code class="filename">texmf/web2c/</code>. Dva nejdůležitější soubory jsou:
			</p>
               <div class="itemizedlist">
                  <ul type="disc">
                     <li>
                        <p>
                           <code class="filename">texmf.cnf</code> – zde se konfigurují cesty pro vyhledávání souborů, vstupní soubory TeXu, adresáře s fonty, další důležité cesty a také hlavní nastavení pro různé součásti TeXu (např. limity pro datové struktury)</p>
                     </li>
                     <li>
                        <p>
                           <code class="filename">fmtutil.cnf</code> – zde se nastavují formáty pro dané aplikace (např. se zde dá zapnout podpora pro csTeX, csLaTeX atd.).</p>
                     </li>
                  </ul>
               </div>
               <p>
		
               </p>
               <p>
			V případě jakékoli změny v adresářové struktuře souborů je nutné k jejich zavedení spustit příkaz <span>
                     <strong class="command">texhash</strong>
                  </span> (znovu vygeneruje informace v souborech <code class="filename">ls-R</code>).
		</p>
            </div>
            <div class="footnotes">
               <br/>
               <hr width="100" align="left"/>
               <div class="footnote">
                  <p>
                     <sup>[<a id="ftn.fn020201" href="#fn020201">4</a>] </sup>
                     <a href="http://www.tug.org/tds/" target="_top">http://www.tug.org/tds/</a>
                  </p>
               </div>
            </div>
         </div>
         <div class="chapter" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="ch03"/>Kapitola 3. Optimalizace aplikací distribuce teTeX pomocí kompilace</h2>
                  </div>
               </div>
            </div>
            <p>
		Z této distribuce byly pro účely testu vybrány aplikace <span class="application">PatGen, pdfTeX, pdfeTeX, TeX, eTeX, Omega, dvipdfm</span> a dále ještě program <span class="application">OPatGen</span>. Tyto programy byly přeloženy s různými volbami překladače na několika strojích a poté byly spuštěny nad testovacími daty. Výsledky prakticky ověřují, jakých optimalizací lze dosáhnout pomocí kompilace.
	</p>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0301"/>Hardware použitý pro testy</h2>
                     </div>
                  </div>
               </div>
               <p>
			Celkem byly využity 4 stroje:
			</p>
               <div class="orderedlist">
                  <ol type="1">
                     <li>
                        <p>
						Prvním strojem je můj stolní počítač (<code class="filename">angel.local</code>).
						</p>
                        <div class="itemizedlist">
                           <ul type="disc">
                              <li>
                                 <div class="variablelist">
                                    <p class="title">
                                       <b>Hardware:</b>
                                    </p>
                                    <dl>
                                       <dt>
                                          <span class="term">CPU:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="trademark">AMD Athlon XP</span>™ 1700+</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Základní deska:</span>
                                       </dt>
                                       <dd>
                                          <p>MSI KT3V</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Paměť:</span>
                                       </dt>
                                       <dd>
                                          <p>256 MB</p>
                                       </dd>
                                       <dt>
                                          <span class="term">HDD:</span>
                                       </dt>
                                       <dd>
                                          <p>40 GB 7200 ot./min U–DMA 100</p>
                                       </dd>
                                    </dl>
                                 </div>
                              </li>
                              <li>
                                 <div class="variablelist">
                                    <p class="title">
                                       <b>Software:</b>
                                    </p>
                                    <dl>
                                       <dt>
                                          <span class="term">Operační systém:</span>
                                       </dt>
                                       <dd>
                                          <p>RedHat <span class="acronym">Linux</span>
                                             <sup>©</sup> 8.0</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Jádro:</span>
                                       </dt>
                                       <dd>
                                          <p>2.4.21–rc1</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Překladač C:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">gcc</span> verze 2.96 (compat–gcc–7.3–2.96.110) a 3.2 (GCC 3.2 20020903 Red Hat Linux 8.0 3.2–7)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Překladač C++:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">g++</span> verze 2.96 (compat–gcc–g++–7.3–2.96.110) a 3.2 (GCC 3.2 20020903 Red Hat Linux 8.0 3.2–7)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Standardní knihovna C:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">glibc</span> verze 2.3.2 (Red Hat Linux 8.0 2.3.2–4.80.6)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Standardní knihovna C++:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">libstdc++</span> verze 3.2 (Red Hat Linux 8.0 3.2–7)</p>
                                       </dd>
                                    </dl>
                                 </div>
                              </li>
                           </ul>
                        </div>
                        <p>
					
                        </p>
                     </li>
                     <li>
                        <p>
						Druhým strojem je můj přenosný počítač <span class="hardware">HP Omnibook 6000</span> (<code class="filename">archangel.local</code>).
						</p>
                        <div class="itemizedlist">
                           <ul type="disc">
                              <li>
                                 <div class="variablelist">
                                    <p class="title">
                                       <b>Hardware:</b>
                                    </p>
                                    <dl>
                                       <dt>
                                          <span class="term">CPU:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="trademark">Intel Mobile Pentium III</span>™ 800 MHz</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Základní deska:</span>
                                       </dt>
                                       <dd>
                                          <p>HP (Intel PIIX4M)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Paměť:</span>
                                       </dt>
                                       <dd>
                                          <p>256 MB</p>
                                       </dd>
                                       <dt>
                                          <span class="term">HDD:</span>
                                       </dt>
                                       <dd>
                                          <p>30 GB 5400 ot./min U–DMA 33</p>
                                       </dd>
                                    </dl>
                                 </div>
                              </li>
                              <li>
                                 <div class="variablelist">
                                    <p class="title">
                                       <b>Software:</b>
                                    </p>
                                    <dl>
                                       <dt>
                                          <span class="term">Operační systém:</span>
                                       </dt>
                                       <dd>
                                          <p>RedHat <span class="acronym">Linux</span>
                                             <sup>©</sup> 8.0</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Jádro:</span>
                                       </dt>
                                       <dd>
                                          <p>RedHat 2.4.18–24.8.0</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Překladač C:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">gcc</span> verze 2.96 (compat–gcc–7.3–2.96.110) a 3.2 (GCC 3.2 20020903 Red Hat Linux 8.0 3.2–7)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Překladač C++:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">g++</span> verze 2.96 (compat–gcc–g++–7.3–2.96.110) a 3.2 (GCC 3.2 20020903 Red Hat Linux 8.0 3.2–7)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Standardní knihovna C:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">glibc</span> verze 2.3.2 (Red Hat Linux 8.0 2.3.2–4.80.6)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Standardní knihovna C++:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">libstdc++</span> verze 3.2 (Red Hat Linux 8.0 3.2–7)</p>
                                       </dd>
                                    </dl>
                                 </div>
                              </li>
                           </ul>
                        </div>
                        <p>
					
                        </p>
                     </li>
                     <li>
                        <p>
						Třetím strojem je stolní počítač v kanceláři RNDr. Petra Sojky (<code class="filename">daeron.fi.muni.cz</code>).
						</p>
                        <div class="itemizedlist">
                           <ul type="disc">
                              <li>
                                 <div class="variablelist">
                                    <p class="title">
                                       <b>Hardware:</b>
                                    </p>
                                    <dl>
                                       <dt>
                                          <span class="term">CPU:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="trademark">AMD Athlon XP</span>™ 1600+</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Základní deska:</span>
                                       </dt>
                                       <dd>
                                          <p>MSI KT2 Pro</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Paměť:</span>
                                       </dt>
                                       <dd>
                                          <p>512 MB</p>
                                       </dd>
                                       <dt>
                                          <span class="term">HDD:</span>
                                       </dt>
                                       <dd>
                                          <p>2 × 60 GB 7200 ot./min U–DMA 100 (software RAID 1)</p>
                                       </dd>
                                    </dl>
                                 </div>
                              </li>
                              <li>
                                 <div class="variablelist">
                                    <p class="title">
                                       <b>Software:</b>
                                    </p>
                                    <dl>
                                       <dt>
                                          <span class="term">Operační systém:</span>
                                       </dt>
                                       <dd>
                                          <p>RedHat <span class="acronym">Linux</span>
                                             <sup>©</sup> 7.3</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Jádro:</span>
                                       </dt>
                                       <dd>
                                          <p>RedHat 2.4.18–17.7.x</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Překladač C:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">gcc</span> verze 2.96</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Překladač C++:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">g++</span> verze 2.96</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Standardní knihovna C:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">glibc</span> verze 2.2.5–42 (Red Hat Linux 7.3)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Standardní knihovna C++:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">libstdc++</span> verze 2.96–110 (Red Hat Linux 7.3)</p>
                                       </dd>
                                    </dl>
                                 </div>
                              </li>
                           </ul>
                        </div>
                        <p>
					
                        </p>
                     </li>
                     <li>
                        <p>
						Posledním strojem je server používaný v Laboratoři zpracování přirozeného jazyka NLP (<code class="filename">aurora.fi.muni.cz</code>).
						</p>
                        <div class="itemizedlist">
                           <ul type="disc">
                              <li>
                                 <div class="variablelist">
                                    <p class="title">
                                       <b>Hardware:</b>
                                    </p>
                                    <dl>
                                       <dt>
                                          <span class="term">CPU:</span>
                                       </dt>
                                       <dd>
                                          <p>2 × <span class="trademark">Intel Xeon</span>™ HT 2,2 GHz (virtuálně 4 procesory) </p>
                                       </dd>
                                       <dt>
                                          <span class="term">Základní deska:</span>
                                       </dt>
                                       <dd>
                                          <p>logika Intel</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Paměť:</span>
                                       </dt>
                                       <dd>
                                          <p>4 GB</p>
                                       </dd>
                                       <dt>
                                          <span class="term">HDD:</span>
                                       </dt>
                                       <dd>
                                          <p>více SCSI disků ( &gt; 500 GB )</p>
                                       </dd>
                                    </dl>
                                 </div>
                              </li>
                              <li>
                                 <div class="variablelist">
                                    <p class="title">
                                       <b>Software:</b>
                                    </p>
                                    <dl>
                                       <dt>
                                          <span class="term">Operační systém:</span>
                                       </dt>
                                       <dd>
                                          <p>Debian <span class="acronym">Linux</span> 3.0</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Jádro:</span>
                                       </dt>
                                       <dd>
                                          <p>2.4.20–1–pentium4–smp</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Překladač C:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">gcc</span> verze 2.95.4 a 3.0.4</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Překladač C++:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">g++</span> verze 2.95.4 a 3.0.4</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Standardní knihovna C:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">glibc</span> verze  2.3.1–14 (Debian Linux)</p>
                                       </dd>
                                       <dt>
                                          <span class="term">Standardní knihovna C++:</span>
                                       </dt>
                                       <dd>
                                          <p>
                                             <span class="application">libstdc++</span> verze 3.0.4–7 (Debian Linux)</p>
                                       </dd>
                                    </dl>
                                 </div>
                              </li>
                           </ul>
                        </div>
                        <p>
					
                        </p>
                     </li>
                  </ol>
               </div>
               <p>
		
               </p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0302"/>Aplikace vybrané pro testy</h2>
                     </div>
                  </div>
               </div>
               <p>
			Jak již bylo napsáno, pro test byly vybrány programy <span class="application">PatGen</span>, <span class="application">TeX</span>, <span class="application">eTeX</span>, <span class="application">pdfTeX</span>, <span class="application">pdfeTeX</span>, <span class="application">Omega</span>, <span class="application">dvipdfm</span> a <span class="application">OPatGen</span>. Použita byla distribuce teTeX 2.0. Zdrojové kódy těchto aplikací byly získány ze souborů WEB pomocí nástrojů této distribuce. Zároveň s těmito programy byly také z distribuce použity knihovny, které jsou u těchto programů vyžadovány (zejména knihovna <code class="filename">kpathsea</code>). <span class="application">OPatGen</span> byl stažen z jeho domovské WWW stránky<sup>[<a id="fn030201" href="#ftn.fn030201">5</a>]</sup>, použita byla verze 1.0 (<span class="application">PatLib</span> v. 1.0).
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0303"/>Testovací soubory</h2>
                     </div>
                  </div>
               </div>
               <p>
			Pro testování aplikací <span class="application">TeX</span>, <span class="application">eTeX</span>, <span class="application">pdfTeX</span>, <span class="application">pdfeTeX</span> a <span class="application">Omega</span> byl použit zdrojový kód knihy The TeXbook [<span class="citation">Texbook</span>], jejíž autorem je Donald E. Knuth. Tento zdrojový kód ve formátu TeX (<code class="filename">texbook.tex</code>) je možné nalézt např. v distribuci TeXLive.
		</p>
               <p>
			TeXbook byl použit také pro testování aplikace <span class="application">dvipdfm</span>. Nejdříve byl přeložen ze zdrojového kódu (<code class="filename">texbook.tex</code>) do formátu DVI (<code class="filename">texbook.dvi</code>) pomocí aplikace <span class="application">eTeX</span>. Soubor <code class="filename">texbook.dvi</code> byl poté použit jako vstup pro tuto aplikaci.
		</p>
               <p>
			Aplikace <span class="application">PatGen</span> a <span class="application">OPatGen</span> byly testovány nad výběrem dat ze souborů, které pro svou diplomovou práci použil David Macháček [<span class="citation">Mach</span>]. Z těchto souborů bylo vybráno 25768 rozdělených slov (víceméně náhodné posloupnosti znaků anglické abecedy) délky nejvýše 20 znaků. <span class="application">OPatGen</span> byl spuštěn s parametrem <code class="option">-u8</code> (používá UTF–8). Generování bylo provedeno s následujícími parametry:
		</p>
               <p>
			
                  <code class="varname">hyph_start</code> = 1
		</p>
               <p>
			
                  <code class="varname">hyph_finish</code> = 2
		</p>
               <p>
			
                  <code class="varname">pat_start</code> = 1
		</p>
               <p>
			
                  <code class="varname">pat_finish</code> = 3
		</p>
               <p>
			
                  <code class="varname">good weight</code> = 1
		</p>
               <p>
			
                  <code class="varname">bad weight</code> = 1
		</p>
               <p>
			
                  <code class="varname">threshold</code> = 1
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0304"/>Parametry překladů</h2>
                     </div>
                  </div>
               </div>
               <p>
			Pro testování bylo vybráno 35 různých kombinací parametrů překladu. Přehled použitých parametrů je uveden v následující tabulce (tabulka č. <a href="#tab030401" title="Tabulka 3.1. Parametry překladu">3.1 – „Parametry překladu“</a>). Podrobnější popis jednotlivých voleb je v sekci <a href="#sec010302" title="Optimalizace kompilací">„Optimalizace kompilací“</a>. Ne všechny testovací stroje ale podporují všechny parametry – kompletní přehledy pro všechny stroje jsou uvedeny v dodatku <a href="#app01" title="Příloha A. Parametry překladu">A – „<i>Parametry překladu</i>“</a>. Jako první se při testu přeloží programy s parametry optimalizace Op–void, která je totožná s Op–0. Je zde za účelem inicializace testu (provede se kompletní překlad a test – nakešují se data atd). Výsledky z této optimalizace se nezahrnují do uvedených charakteristik.
		</p>
               <p>
			
               </p>
               <div class="table">
                  <a id="tab030401"/>
                  <p class="title">
                     <b>Tabulka 3.1. Parametry překladu</b>
                  </p>
                  <table summary="Parametry překladu" width="100%" border="1">
                     <colgroup>
                        <col/>
                     </colgroup>
                     <thead>
                        <tr>
                           <th>argumenty překladače</th>
                        </tr>
                     </thead>
                     <tbody>
                        <tr>
                           <td>–g</td>
                        </tr>
                        <tr>
                           <td>–O0</td>
                        </tr>
                        <tr>
                           <td>–O1</td>
                        </tr>
                        <tr>
                           <td>–O2</td>
                        </tr>
                        <tr>
                           <td>–O3</td>
                        </tr>
                        <tr>
                           <td>–Os</td>
                        </tr>
                        <tr>
                           <td>–mcpu={i386,i686,athlon–xp,pentium3}</td>
                        </tr>
                        <tr>
                           <td>–march={i386,i686,athlon–xp,pentium3}</td>
                        </tr>
                        <tr>
                           <td>–fomit–frame–pointer</td>
                        </tr>
                        <tr>
                           <td>–fexpensive–optimizations</td>
                        </tr>
                        <tr>
                           <td>–ffast–math</td>
                        </tr>
                        <tr>
                           <td>–funroll–loops</td>
                        </tr>
                        <tr>
                           <td>–funroll–all–loops</td>
                        </tr>
                     </tbody>
                  </table>
               </div>
               <p>
		
               </p>
               <p>
			Pro samotný překlad byly použity překladače <span>
                     <strong class="command">gcc</strong>
                  </span> a <span>
                     <strong class="command">g++</strong>
                  </span>. Testovací stroje používaly každý jiné verze těchto překladačů (celkově byly použity verze 2.95, 2.96, 3.0.4 a 3.2). Konkrétní verze dostupné na daných strojích jsou uvedeny v sekcích <a href="#sec0301" title="Hardware použitý pro testy">„Hardware použitý pro testy“</a> a <a href="#app01" title="Příloha A. Parametry překladu">A – „<i>Parametry překladu</i>“</a>. Program <span class="application">OPatGen</span> bylo nutné překládat verzí 2.9x (verze 3.x zpřísnily podmínky pro zápis šablon, které jsou v <span class="application">OPatGenu</span> hojně využity, a program tudíž na této verzi nelze přeložit).
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0305"/>Struktura adresáře s testy</h2>
                     </div>
                  </div>
               </div>
               <p>
			Hlavní adresář se soubory a obslužnými skripty vypadá následovně:
			</p>
               <div class="variablelist">
                  <dl>
                     <dt>
                        <span class="term">
                           <code class="filename">optimization-tests/</code>
                        </span>
                     </dt>
                     <dd>
                        <p>adresář obsahující informace o výsledcích kompilací a testů </p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">optimization-progs/</code>
                        </span>
                     </dt>
                     <dd>
                        <p>adresář obsahující přeložené aplikace a testovací data</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">programs/</code>
                        </span>
                     </dt>
                     <dd>
                        <p>adresář obsahující zdrojové kódy aplikací</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">test_all</code>
                        </span>
                     </dt>
                     <dd>
                        <p>hlavní skript řídící všechny testy</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">do_test</code>
                        </span>
                     </dt>
                     <dd>
                        <p>skript, který provede 1 test</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">archok_cflags</code>
                        </span>
                     </dt>
                     <dd>
                        <p>pomocný skript</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">archok_cppflags</code>
                        </span>
                     </dt>
                     <dd>
                        <p>pomocný skript</p>
                     </dd>
                     <dt>
                        <span class="term">
                           <code class="filename">test_parameters.txt</code>
                        </span>
                     </dt>
                     <dd>
                        <p>textový soubor obsahující parametry kompilací</p>
                     </dd>
                  </dl>
               </div>
               <p>
		
               </p>
               <p>
			Pro účely testu byly vytvořeny pomocné skripty a upraveny, případně vytvořeny soubory <code class="filename">Makefile</code> pro překlad. Zdrojové kódy testovaných aplikací nebyly měněny.
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0306"/>Postup testování</h2>
                     </div>
                  </div>
               </div>
               <p>
			Pro každé nastavení optimalizace byl proveden test skládající se z následujících kroků:
			</p>
               <div class="orderedlist">
                  <ol type="1">
                     <li>
                        <p>Vytvoření adresářů pro výsledky testů a přeložené programy.</p>
                     </li>
                     <li>
                        <p>Vyčištění adresáře se zdrojovými kódy testovaných aplikací (<code class="filename">programs/</code>) – odstranění všech přeložených objektů.</p>
                     </li>
                     <li>
                        <p>Přeložení požadovaných knihoven v pořadí <code class="filename">kpathsea</code>, <code class="filename">zlib</code>, <code class="filename">libpng</code>, <code class="filename">xpdf</code>, <code class="filename">lib</code>.</p>
                     </li>
                     <li>
                        <p>Přeložení aplikací v pořadí <span class="application">PatGen</span>, <span class="application">OPatGen</span>, <span class="application">TeX</span>, <span class="application">eTeX</span>, <span class="application">pdfTeX</span>, <span class="application">pdfeTeX</span>, <span class="application">Omega</span> a <span class="application">dvipdfm</span>.</p>
                     </li>
                     <li>
                        <p>Zkopírování přeložených aplikací do výstupního adresáře a odstranění ladících symbolů (pomocí programu <span>
                              <strong class="command">strip</strong>
                           </span>).</p>
                     </li>
                     <li>
                        <p>Testování aplikací na jejich testovacích datech (viz <a href="#sec0303" title="Testovací soubory">„Testovací soubory“</a>) v pořadí <span class="application">pdfTeX</span>, <span class="application">pdfeTeX</span>, <span class="application">Omega</span>, <span class="application">TeX</span>, <span class="application">eTeX</span>, <span class="application">dvipdfm</span>, <span class="application">PatGen</span> a <span class="application">OPatGen</span>. Před každým testem byly odstraněny soubory vytvořené v předchozích testech.</p>
                     </li>
                  </ol>
               </div>
               <p>
		
               </p>
               <p>
			Zjišťovanými charakteristikami byly doby běhu překladu programů a následných testů.
		</p>
               <p>
			Doba běhu jednotlivých testů byla zjišťována pomocí nástroje <span>
                     <strong class="command">time</strong>
                  </span> (externí aplikace, ne součást shellu). Pro výstup bylo použito následující formátování (exportované jako proměnná prostředí):
		</p>
               <p>
		
               </p>
               <div class="informaltable">
                  <table border="0">
                     <colgroup>
                        <col/>
                     </colgroup>
                     <tbody>
                        <tr>
                           <td>
                              <code class="envar">TIME="Command: %C\nExit status: %x\n\nCPU:\nReal\t\t%E\n User\t\t%U\nSystem\t\t%S\nCPU Percentage\t%P\n\nMemory (KB):\nMaximum resident set size\t\t%M\nAverage resident setsize\t\t%t\nAverage total memory use\t\t%K\nAverage size of unshared data area\t%D\nAverage size of unshared stack space\t%p\nAverage size of shared text space\t%X\nSystem page size\t\t%Z\nMajor page faults\t\t%F\nMinor page faults\t\t%R\nNumber of swapps out of memory\t%W\nNumber of context-switching\t%c\nNumber of waits\t\t\t%w\n\nI/O:\nNumber of file system inputs\t\t%I\nNumber of file system outputs\t\t%O\nNumber of socket messages received\t%r\nNumber of socket messages sent\t\t%s\nNumber of signals delivered to process\t%k"</code>
                           </td>
                        </tr>
                     </tbody>
                  </table>
               </div>
               <p>
		
               </p>
               <p>
			Použity byly hodnoty <code class="envar">CPU User</code>. Kompletní výstupy jsou k dispozici na přiloženém CD (<a href="#app04" title="Příloha D. Obsah CD">D – „<i>Obsah CD</i>“</a>).
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0307"/>Výsledky</h2>
                     </div>
                  </div>
               </div>
               <p>
			Následují zjištěné hodnoty pro všechny testovací stroje. Uvedeny jsou pouze některé statistické hodnoty, kompletní výsledky jsou uvedeny v části <a href="#app02" title="Příloha B. Kompletní výsledky testů">B – „<i>Kompletní výsledky testů</i>“</a>. Použity jsou následující parametry ( t(jméno_optimalizace) představuje dobu běhu daného testu programem přeloženým s parametry optimalizace jméno_optimalizace):
		</p>
               <div class="variablelist">
                  <dl>
                     <dt>
                        <span class="term">min</span>
                     </dt>
                     <dd>
                        <p>nejkratší doba běhu</p>
                     </dd>
                     <dt>
                        <span class="term">max</span>
                     </dt>
                     <dd>
                        <p>nejdelší doba běhu</p>
                     </dd>
                     <dt>
                        <span class="term">průměr</span>
                     </dt>
                     <dd>
                        <p>aritmetický průměr všech dob běhu</p>
                     </dd>
                     <dt>
                        <span class="term">m. ur.</span>
                     </dt>
                     <dd>
                        <p>ukazuje, kolik času (v %) je možno ušetřit použitím nejrychlejší optimalizace oproti nejpomalejší (m. ur. = ( max – min ) / max).</p>
                     </dd>
                     <dt>
                        <span class="term">ur.</span>
                     </dt>
                     <dd>
                        <p>ukazuje, kolik času (v %) je možno ušetřit použitím nejrychlejší optimalizace oproti žádné optimalizaci (ur. = ( t(Op–0) – min ) / t(Op–0) ).</p>
                     </dd>
                     <dt>
                        <span class="term">nejv. opt.</span>
                     </dt>
                     <dd>
                        <p>nejvhodnější optimalizace ( t(nejv. opt.) = min ) V případě více shod je použita ta s nejkratší dobou překladu.</p>
                     </dd>
                  </dl>
               </div>
               <p>
		
               </p>
               <p>
			Z výsledků je patrné, že použitím vhodných parametrů překladu je možné dosáhnout podstatných urychlení. Velice ale záleží na typu programu – nejlépe se dařilo urychlit <span class="application">OPatGen</span> (až o 85 %), naopak aplikaci <span class="application">Omega</span> se podařilo urychlit nejméně (nejvíce o 11 %). Použitím nevhodných parametrů je také možné program dokonce zpomalit. Velkou komplikací je také fakt, že většina optimalizací několikanásobně prodlouží dobu překladu (v nejhorších případech až 30 ×). Nicméně i přes tuto nevýhodu je evidentní, že má cenu překlady optimalizovat.
		</p>
               <p>
			Následují shrnutí výsledků a doporučení pro testované stroje. Je třeba poznamenat, že ve většině případů byly u nejvýhodnějších optimalizací minimální rozdíly. V tabulkách jsou uvedeny optimalizace nejvhodnější pro danou aplikaci.
		</p>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec030701"/>Stroj č. 1 (Athlon XP 1700+)</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Výsledky jsou zobrazeny v tabulce <a href="#tab03070101" title="Tabulka 3.2. Výsledky ze stroje č. 1">3.2 – „Výsledky ze stroje č. 1“</a>.
			</p>
                  <p>
				Výhodná je optimalizace Op–14. Celkově nejrychlejší byly optimalizace Op–35, Op–14 a Op–32.
			</p>
                  <div class="table">
                     <a id="tab03070101"/>
                     <p class="title">
                        <b>Tabulka 3.2. Výsledky ze stroje č. 1</b>
                     </p>
                     <table summary="Výsledky ze stroje č. 1" width="100%" border="1">
                        <colgroup>
                           <col align="center"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="center"/>
                        </colgroup>
                        <thead>
                           <tr>
                              <th align="center" valign="middle">
                                 <p>program</p>
                              </th>
                              <th colspan="3" align="center">doba překladu (s)</th>
                              <th colspan="3" align="center">doba testu (s)</th>
                              <th align="center" valign="middle">m. ur.</th>
                              <th align="center" valign="middle">ur.</th>
                              <th align="center" valign="middle">nejv.</th>
                           </tr>
                           <tr>
                              <th align="center"> </th>
                              <th align="center">min</th>
                              <th align="center">max</th>
                              <th align="center">průměr</th>
                              <th align="center">min</th>
                              <th align="center">max</th>
                              <th align="center">průměr</th>
                              <th align="center">(%)</th>
                              <th align="center">(%)</th>
                              <th align="center">opt.</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">patgen</strong>
                                 </span>
                              </td>
                              <td align="right">0.31</td>
                              <td align="right">1.39</td>
                              <td align="right">0.86</td>
                              <td align="right">1.62</td>
                              <td align="right">5.85</td>
                              <td align="right">2.36</td>
                              <td align="right">72</td>
                              <td align="right">72</td>
                              <td align="center">Op–19</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">opatgen</strong>
                                 </span>
                              </td>
                              <td align="right">4.57</td>
                              <td align="right">103.30</td>
                              <td align="right">60.35</td>
                              <td align="right">13.14</td>
                              <td align="right">48.11</td>
                              <td align="right">21.09</td>
                              <td align="right">72</td>
                              <td align="right">72</td>
                              <td align="center">Op–32</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">tex</strong>
                                 </span>
                              </td>
                              <td align="right">3,65</td>
                              <td align="right">77,82</td>
                              <td align="right">24,45</td>
                              <td align="right">1,19</td>
                              <td align="right">1,79</td>
                              <td align="right">1,31</td>
                              <td align="right">33</td>
                              <td align="right">28</td>
                              <td align="center">Op–9</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">etex</strong>
                                 </span>
                              </td>
                              <td align="right">4,22</td>
                              <td align="right">98,59</td>
                              <td align="right">29,98</td>
                              <td align="right">1,24</td>
                              <td align="right">1,87</td>
                              <td align="right">1,37</td>
                              <td align="right">33</td>
                              <td align="right">29</td>
                              <td align="center">Op–14</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">pdftex</strong>
                                 </span>
                              </td>
                              <td align="right">8,33</td>
                              <td align="right">124,48</td>
                              <td align="right">43,06</td>
                              <td align="right">2,86</td>
                              <td align="right">4,99</td>
                              <td align="right">3,20</td>
                              <td align="right">42</td>
                              <td align="right">39</td>
                              <td align="center">Op–14</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">pdfetex</strong>
                                 </span>
                              </td>
                              <td align="right">5.91</td>
                              <td align="right">133.18</td>
                              <td align="right">41.05</td>
                              <td align="right">2.89</td>
                              <td align="right">4.95</td>
                              <td align="right">3.24</td>
                              <td align="right">41</td>
                              <td align="right">39</td>
                              <td align="center">Op–8</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">omega</strong>
                                 </span>
                              </td>
                              <td align="right">7.37</td>
                              <td align="right">41.86</td>
                              <td align="right">28.07</td>
                              <td align="right">28.99</td>
                              <td align="right">31.97</td>
                              <td align="right">29.43</td>
                              <td align="right">9</td>
                              <td align="right">8</td>
                              <td align="center">Op–15</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">dvipdfm</strong>
                                 </span>
                              </td>
                              <td align="right">5.22</td>
                              <td align="right">16.34</td>
                              <td align="right">12.23</td>
                              <td align="right">1.52</td>
                              <td align="right">2.70</td>
                              <td align="right">1.77</td>
                              <td align="right">43</td>
                              <td align="right">41</td>
                              <td align="center">Op–17</td>
                           </tr>
                        </tbody>
                     </table>
                  </div>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec030702"/>Stroj č. 2 (Intel Mobile Pentium III 800)</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Výsledky jsou zobrazeny v tabulce <a href="#tab03070201" title="Tabulka 3.3. Výsledky ze stroje č. 2">3.3 – „Výsledky ze stroje č. 2“</a>.
			</p>
                  <p>
				Výhodné jsou optimalizace Op–35, Op–14 a Op–8. Celkově nejrychlejší byly Op–35, Op–14 a Op–32.
			</p>
                  <div class="table">
                     <a id="tab03070201"/>
                     <p class="title">
                        <b>Tabulka 3.3. Výsledky ze stroje č. 2</b>
                     </p>
                     <table summary="Výsledky ze stroje č. 2" width="100%" border="1">
                        <colgroup>
                           <col align="center"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="center"/>
                        </colgroup>
                        <thead>
                           <tr>
                              <th align="center" valign="middle">
                                 <p>program</p>
                              </th>
                              <th colspan="3" align="center">doba překladu (s)</th>
                              <th colspan="3" align="center">doba testu (s)</th>
                              <th align="center" valign="middle">m. ur.</th>
                              <th align="center" valign="middle">ur.</th>
                              <th align="center" valign="middle">nejv.</th>
                           </tr>
                           <tr>
                              <th align="center"> </th>
                              <th align="center">min</th>
                              <th align="center">max</th>
                              <th align="center">průměr</th>
                              <th align="center">min</th>
                              <th align="center">max</th>
                              <th align="center">průměr</th>
                              <th align="center">(%)</th>
                              <th align="center">(%)</th>
                              <th align="center">opt.</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">patgen</strong>
                                 </span>
                              </td>
                              <td align="right">0.66</td>
                              <td align="right">2.99</td>
                              <td align="right">1.78</td>
                              <td align="right">8.15</td>
                              <td align="right">27.11</td>
                              <td align="right">10.75</td>
                              <td align="right">69</td>
                              <td align="right">69</td>
                              <td align="center">Op–18</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">opatgen</strong>
                                 </span>
                              </td>
                              <td align="right">8.63</td>
                              <td align="right">173.00</td>
                              <td align="right">110.46</td>
                              <td align="right">97.35</td>
                              <td align="right">339.86</td>
                              <td align="right">153.86</td>
                              <td align="right">71</td>
                              <td align="right">71</td>
                              <td align="center">Op–35</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">tex</strong>
                                 </span>
                              </td>
                              <td align="right">7.38</td>
                              <td align="right">169.10</td>
                              <td align="right">48.17</td>
                              <td align="right">2.38</td>
                              <td align="right">3.38</td>
                              <td align="right">2.61</td>
                              <td align="right">29</td>
                              <td align="right">28</td>
                              <td align="center">Op–35</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">etex</strong>
                                 </span>
                              </td>
                              <td align="right">8.60</td>
                              <td align="right">220.66</td>
                              <td align="right">58.53</td>
                              <td align="right">2.49</td>
                              <td align="right">3.53</td>
                              <td align="right">2.72</td>
                              <td align="right">29</td>
                              <td align="right">26</td>
                              <td align="center">Op–14</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">pdftex</strong>
                                 </span>
                              </td>
                              <td align="right">17.08</td>
                              <td align="right">271.34</td>
                              <td align="right">85.31</td>
                              <td align="right">5.22</td>
                              <td align="right">8.52</td>
                              <td align="right">5.87</td>
                              <td align="right">38</td>
                              <td align="right">37</td>
                              <td align="center">Op–8</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">pdfetex</strong>
                                 </span>
                              </td>
                              <td align="right">12.02</td>
                              <td align="right">301.59</td>
                              <td align="right">80.27</td>
                              <td align="right">5.38</td>
                              <td align="right">8.63</td>
                              <td align="right">5.97</td>
                              <td align="right">37</td>
                              <td align="right">35</td>
                              <td align="center">Op–14</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">omega</strong>
                                 </span>
                              </td>
                              <td align="right">14.98</td>
                              <td align="right">83.86</td>
                              <td align="right">56.09</td>
                              <td align="right">38.23</td>
                              <td align="right">41.33</td>
                              <td align="right">38.78</td>
                              <td align="right">7</td>
                              <td align="right">7</td>
                              <td align="center">Op–8</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">dvipdfm</strong>
                                 </span>
                              </td>
                              <td align="right">10.48</td>
                              <td align="right">34.18</td>
                              <td align="right">25.30</td>
                              <td align="right">3.04</td>
                              <td align="right">4.70</td>
                              <td align="right">3.36</td>
                              <td align="right">35</td>
                              <td align="right">33</td>
                              <td align="center">Op–14</td>
                           </tr>
                        </tbody>
                     </table>
                  </div>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec030703"/>Stroj č. 3 (Athlon XP 1600+)</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Výsledky jsou zobrazeny v tabulce <a href="#tab03070301" title="Tabulka 3.4. Výsledky ze stroje č. 3">3.4 – „Výsledky ze stroje č. 3“</a>.
			</p>
                  <p>
				Výhodné jsou optimalizace Op–35 a Op–14. Celkově nejrychlejší byly Op–14, Op–35, Op–9 a Op–10.
			</p>
                  <div class="table">
                     <a id="tab03070301"/>
                     <p class="title">
                        <b>Tabulka 3.4. Výsledky ze stroje č. 3</b>
                     </p>
                     <table summary="Výsledky ze stroje č. 3" width="100%" border="1">
                        <colgroup>
                           <col align="center"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="center"/>
                        </colgroup>
                        <thead>
                           <tr>
                              <th align="center" valign="middle">
                                 <p>program</p>
                              </th>
                              <th colspan="3" align="center">doba překladu (s)</th>
                              <th colspan="3" align="center">doba testu (s)</th>
                              <th align="center" valign="middle">m. ur.</th>
                              <th align="center" valign="middle">ur.</th>
                              <th align="center" valign="middle">nejv.</th>
                           </tr>
                           <tr>
                              <th align="center"> </th>
                              <th align="center">min</th>
                              <th align="center">max</th>
                              <th align="center">průměr</th>
                              <th align="center">min</th>
                              <th align="center">max</th>
                              <th align="center">průměr</th>
                              <th align="center">(%)</th>
                              <th align="center">(%)</th>
                              <th align="center">opt.</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">patgen</strong>
                                 </span>
                              </td>
                              <td align="right">0.34</td>
                              <td align="right">1.20</td>
                              <td align="right">0.82</td>
                              <td align="right">5.91</td>
                              <td align="right">14.69</td>
                              <td align="right">7.08</td>
                              <td align="right">59</td>
                              <td align="right">59</td>
                              <td align="center">Op–22</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">opatgen</strong>
                                 </span>
                              </td>
                              <td align="right">4.71</td>
                              <td align="right">106.03</td>
                              <td align="right">64.07</td>
                              <td align="right">44.29</td>
                              <td align="right">191.99</td>
                              <td align="right">72.39</td>
                              <td align="right">76</td>
                              <td align="right">75</td>
                              <td align="center">Op–14</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">tex</strong>
                                 </span>
                              </td>
                              <td align="right">4.00</td>
                              <td align="right">36.93</td>
                              <td align="right">17.15</td>
                              <td align="right">1.38</td>
                              <td align="right">1.99</td>
                              <td align="right">1.51</td>
                              <td align="right">30</td>
                              <td align="right">30</td>
                              <td align="center">Op–35</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">etex</strong>
                                 </span>
                              </td>
                              <td align="right">4.64</td>
                              <td align="right">49.73</td>
                              <td align="right">21.57</td>
                              <td align="right">1.47</td>
                              <td align="right">2.02</td>
                              <td align="right">1.56</td>
                              <td align="right">27</td>
                              <td align="right">27</td>
                              <td align="center">Op–35</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">pdftex</strong>
                                 </span>
                              </td>
                              <td align="right">9.15</td>
                              <td align="right">63.64</td>
                              <td align="right">31.79</td>
                              <td align="right">3.51</td>
                              <td align="right">5.64</td>
                              <td align="right">3.82</td>
                              <td align="right">37</td>
                              <td align="right">37</td>
                              <td align="center">Op–14</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">pdfetex</strong>
                                 </span>
                              </td>
                              <td align="right">6.43</td>
                              <td align="right">68.04</td>
                              <td align="right">29.81</td>
                              <td align="right">3.55</td>
                              <td align="right">5.68</td>
                              <td align="right">3.88</td>
                              <td align="right">37</td>
                              <td align="right">37</td>
                              <td align="center">Op–14</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">omega</strong>
                                 </span>
                              </td>
                              <td align="right">8.04</td>
                              <td align="right">32.27</td>
                              <td align="right">24.07</td>
                              <td align="right">26.32</td>
                              <td align="right">29.70</td>
                              <td align="right">27.20</td>
                              <td align="right">11</td>
                              <td align="right">11</td>
                              <td align="center">Op–12</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">dvipdfm</strong>
                                 </span>
                              </td>
                              <td align="right">5.59</td>
                              <td align="right">14.32</td>
                              <td align="right">11.80</td>
                              <td align="right">1.55</td>
                              <td align="right">2.64</td>
                              <td align="right">1.71</td>
                              <td align="right">41</td>
                              <td align="right">41</td>
                              <td align="center">Op–35</td>
                           </tr>
                        </tbody>
                     </table>
                  </div>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec030704"/>Stroj č. 4 (2 × Intel Xeon 2,2)</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Výsledky jsou zobrazeny v tabulce <a href="#tab03070401" title="Tabulka 3.5. Výsledky ze stroje č. 4">3.5 – „Výsledky ze stroje č. 4“</a>.
			</p>
                  <p>
				Žádná optimalizace není jednoznačně výhodná. Celkově nejrychlejší byly Op–32, Op–9, Op–14 a Op–1.
			</p>
                  <div class="table">
                     <a id="tab03070401"/>
                     <p class="title">
                        <b>Tabulka 3.5. Výsledky ze stroje č. 4</b>
                     </p>
                     <table summary="Výsledky ze stroje č. 4" width="100%" border="1">
                        <colgroup>
                           <col align="center"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="right"/>
                           <col align="center"/>
                        </colgroup>
                        <thead>
                           <tr>
                              <th align="center" valign="middle">
                                 <p>program</p>
                              </th>
                              <th colspan="3" align="center">doba překladu (s)</th>
                              <th colspan="3" align="center">doba testu (s)</th>
                              <th align="center" valign="middle">m. ur.</th>
                              <th align="center" valign="middle">ur.</th>
                              <th align="center" valign="middle">nejv.</th>
                           </tr>
                           <tr>
                              <th align="center"> </th>
                              <th align="center">min</th>
                              <th align="center">max</th>
                              <th align="center">průměr</th>
                              <th align="center">min</th>
                              <th align="center">max</th>
                              <th align="center">průměr</th>
                              <th align="center">(%)</th>
                              <th align="center">(%)</th>
                              <th align="center">opt.</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">patgen</strong>
                                 </span>
                              </td>
                              <td align="right">0.25</td>
                              <td align="right">1.03</td>
                              <td align="right">0.64</td>
                              <td align="right">3.77</td>
                              <td align="right">13.06</td>
                              <td align="right">4.43</td>
                              <td align="right">71</td>
                              <td align="right">71</td>
                              <td align="center">Op–24</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">opatgen</strong>
                                 </span>
                              </td>
                              <td align="right">2.44</td>
                              <td align="right">61.61</td>
                              <td align="right">43.69</td>
                              <td align="right">27.20</td>
                              <td align="right">194.54</td>
                              <td align="right">57.27</td>
                              <td align="right">86</td>
                              <td align="right">85</td>
                              <td align="center">Op–1</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">tex</strong>
                                 </span>
                              </td>
                              <td align="right">2.52</td>
                              <td align="right">47.10</td>
                              <td align="right">16.87</td>
                              <td align="right">1.29</td>
                              <td align="right">1.77</td>
                              <td align="right">1.40</td>
                              <td align="right">27</td>
                              <td align="right">26</td>
                              <td align="center">Op–34</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">etex</strong>
                                 </span>
                              </td>
                              <td align="right">3.00</td>
                              <td align="right">61.65</td>
                              <td align="right">21.34</td>
                              <td align="right">1.31</td>
                              <td align="right">1.90</td>
                              <td align="right">1.47</td>
                              <td align="right">31</td>
                              <td align="right">26</td>
                              <td align="center">Op–6</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">pdftex</strong>
                                 </span>
                              </td>
                              <td align="right">5.65</td>
                              <td align="right">73.40</td>
                              <td align="right">29.10</td>
                              <td align="right">2.88</td>
                              <td align="right">4.10</td>
                              <td align="right">3.09</td>
                              <td align="right">29</td>
                              <td align="right">29</td>
                              <td align="center">Op–8</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">pdfetex</strong>
                                 </span>
                              </td>
                              <td align="right">4.04</td>
                              <td align="right">80.52</td>
                              <td align="right">28.83</td>
                              <td align="right">3.02</td>
                              <td align="right">4.26</td>
                              <td align="right">3.21</td>
                              <td align="right">29</td>
                              <td align="right">28</td>
                              <td align="center">Op–32</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">omega</strong>
                                 </span>
                              </td>
                              <td align="right">6.01</td>
                              <td align="right">23.53</td>
                              <td align="right">17.29</td>
                              <td align="right">26.12</td>
                              <td align="right">28.30</td>
                              <td align="right">26.49</td>
                              <td align="right">7</td>
                              <td align="right">6</td>
                              <td align="center">Op–9</td>
                           </tr>
                           <tr>
                              <td align="center">
                                 <span>
                                    <strong class="command">dvipdfm</strong>
                                 </span>
                              </td>
                              <td align="right">3.51</td>
                              <td align="right">11.26</td>
                              <td align="right">8.59</td>
                              <td align="right">1.24</td>
                              <td align="right">1.79</td>
                              <td align="right">1.34</td>
                              <td align="right">30</td>
                              <td align="right">30</td>
                              <td align="center">Op–28</td>
                           </tr>
                        </tbody>
                     </table>
                  </div>
               </div>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0308"/>Doporučení</h2>
                     </div>
                  </div>
               </div>
               <p>
			Jak již bylo uvedeno, mezi mnoha optimalizacemi byly minimální rozdíly (je to dáno i tím, že měly hodně společných parametrů). Přesto je možné doporučit vhodné parametry:
		</p>
               <div class="itemizedlist">
                  <ul type="disc">
                     <li>
                        <p>
				V každém případě by měly být použity parametry <code class="option">-O2</code> nebo <code class="option">-O3</code>.
				</p>
                     </li>
                     <li>
                        <p>
				Pokud není potřeba program ladit, je výhodné použít <code class="option">-fomit-frame-pointer</code>.
				</p>
                     </li>
                     <li>
                        <p>
				V některých případech můžeme program urychlit i volbou dané platformy pomocí <code class="option">-march=platforma</code> nebo <code class="option">-mcpu=platforma</code>.
				</p>
                     </li>
                     <li>
                        <p>
				Ve specifických případech (některé typy výpočtů) by urychlení mohlo přinést použití parametru <code class="option">-ffast-math</code>.
				</p>
                     </li>
                     <li>
                        <p>
				Naopak nebyl prokázán výraznější vliv samotné verze použitého překladače, kromě toho, že nové verze přinášejí nové volby. Bohužel ale nebyly k dispozici jiné překladače než různé verze <span class="application">GCC</span>.
				</p>
                     </li>
                  </ul>
               </div>
            </div>
            <div class="footnotes">
               <br/>
               <hr width="100" align="left"/>
               <div class="footnote">
                  <p>
                     <sup>[<a id="ftn.fn030201" href="#fn030201">5</a>] </sup>
                     <a href="http://www.fi.muni.cz/~xantos/patlib/" target="_top">http://www.fi.muni.cz/~xantos/patlib/</a>
                  </p>
               </div>
            </div>
         </div>
         <div class="chapter" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="ch04"/>Kapitola 4. Profilování</h2>
                  </div>
               </div>
            </div>
            <p>
		Jak již bylo nastíněno v úvodu, vytvoření a analýza profilu aplikace je základním a nezbytným krokem před každou optimalizací. Pomocí profilování je možné určit, kde program strávil nejvíce času a jak je vzájemně provázáno volání funkcí. Pro tuto kapitolu byl zvolen program <span class="application">gprof</span>.
	</p>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0401"/>Vytvoření a analýza profilu</h2>
                     </div>
                  </div>
               </div>
               <p>
			Profil dané aplikace se vytváří v následujících 2 krocích (uvedené parametry platí pro překladače z <span class="application">GCC</span>:
			</p>
               <div class="orderedlist">
                  <ol type="1">
                     <li>
                        <p>
						Přeložení a „<span class="quote">slinkování</span>“ programu s podporou pro profilování (<code class="option">-pg</code> pro <span class="application">gprof</span>) a případně s podporou pro ladění (<code class="option">-g</code>).
					</p>
                     </li>
                     <li>
                        <p>
						Spuštění programu nad testovanými daty. Data a argumenty by měly být vhodně zvoleny, protože mají přímý vliv na vygenerovaný profil. Program po ukončení běhu vytvoří soubor s profilem (obvykle <code class="filename">gmon.out</code>).
					</p>
                     </li>
                  </ol>
               </div>
               <p>
			Vytvořený profil se poté analyzuje pomocí profilovacího programu (<span>
                     <strong class="command">gprof</strong>
                  </span>). Je možné vygenerovat následující výstupy:
			</p>
               <div class="itemizedlist">
                  <ul type="disc">
                     <li>
                        <p>
						
                           <span class="emphasis">
                              <em>„<span class="quote">Přímý</span>“ profil (flat profile)</em>
                           </span> – zobrazí celkový čas, který program strávil v každé funkci a kolikrát byla tato funkce volána.
					</p>
                        <p>
						Syntaxe pro jeho vytvoření je:
					</p>
                        <p>
						
                           <span>
                              <strong class="command">gprof -p &lt;program&gt;</strong>
                           </span>
					
                        </p>
                     </li>
                     <li>
                        <p>
						
                           <span class="emphasis">
                              <em>Graf funkcí (call graph)</em>
                           </span> – pro každou funkci zobrazí, kolik času strávil program v této funkci a ve funkcích, které jsou v ní volány. Toto je užitečné, když potřebujeme najít funkce, které samy neběží dlouho, ale volají časově náročné funkce.
					</p>
                        <p>
						Syntaxe pro jeho vytvoření je:
					</p>
                        <p>
						
                           <span>
                              <strong class="command">gprof -q &lt;program&gt;</strong>
                           </span>
					
                        </p>
                     </li>
                     <li>
                        <p>
						
                           <span class="emphasis">
                              <em>Komentovaný kód (annotated source)</em>
                           </span> – zobrazí zdrojový kód programu a ke každé funkci zobrazí, kolikrát byla volána. Je také možné zobrazit, kolikrát byl proveden každý řádek kódu.
					</p>
                        <p>
						Syntaxe pro jeho vytvoření je:
					</p>
                        <p>
						
                           <span>
                              <strong class="command">gprof -A &lt;program&gt;</strong>
                           </span>
					
                        </p>
                     </li>
                  </ul>
               </div>
               <p>
		
               </p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0402"/>Ukázky profilování</h2>
                     </div>
                  </div>
               </div>
               <p>
			Pro názornou ilustraci výsledků profilování byly vybrány programy <span class="application">PatGen</span> a <span class="application">OPatGen</span>. Jako data a parametry byly použity stejné hodnoty jako pro testy v předchozí kapitole (viz <a href="#sec0303" title="Testovací soubory">„Testovací soubory“</a>).
		</p>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec040201"/>Profily aplikace <span class="application">PatGen</span>
                           </h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Ukázán je pouze „<span class="quote">Přímý</span>“ profil, zbylé dva jsou příliš dlouhé na to, aby byly obsaženy přímo v této práci. Jsou ale k dispozici na přiloženém CD (<a href="#app04" title="Příloha D. Obsah CD">D – „<i>Obsah CD</i>“</a>).
				</p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>
							„<span class="quote">Přímý</span>“ profil:
						</p>
                           <p>
							Kompletní výpis je uveden v části <a href="#app03" title="Příloha C. Kompletní ukázky profilů">C – „<i>Kompletní ukázky profilů</i>“</a>. 
						</p>
                           <p>
							Při použití optimalizace Op–0 se nejvíce času (90,7 %) stráví ve funkci <code class="function">readword</code>. Druhá nejpoužívanější (5,3 %) funkce je <code class="function">hyphenate</code>. Zbytek má méně než 2 %.
						</p>
                           <p>
							Funkce <code class="function">readword</code> se stará o načtení a zpracování řádky vstupního textu. Je tedy evidentní, že vstup-výstupní operace zabírají více než 90 % celkového času.
						</p>
                           <p>
							Při použití optimalizace Op–3 se podíl funkce <code class="function">readword</code> zmenší na 84,6 %, podíly ostatních vzrostou (funkce <code class="function">hyphenate</code> nyní zabere 8,2 %).
						</p>
                        </li>
                     </ul>
                  </div>
                  <p>
			
                  </p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec040202"/>Profily aplikace <span class="application">OPatGen</span>
                           </h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Bohužel všechny profily jsou příliš velké na přímé vložení do textu této práce. Jsou ale obsaženy na přiloženém CD (<a href="#app04" title="Příloha D. Obsah CD">D – „<i>Obsah CD</i>“</a>).
				</p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>
							„<span class="quote">Přímý</span>“ profil:
						</p>
                           <p>
							V případě <span class="application">OPatGenu</span> není rozdělení celkové doby běhu tak jednoznačné, žádná nepřekračuje 6 %. Při použití optimalizace Op–0 se nejvíce času (5,2 %) stráví ve funkci <code class="function">Competitive_multi_out_pat_manip::competitive_word_output</code>, druhá nejpoužívanější funkce (4,65 %) je <code class="function">vector::_M_insert_aux</code>.
						</p>
                           <p>
							Při použití optimalizace Op–3 se tyto podíly výrazným způsobem změní. Funkce <code class="function">Competitive_multi_out_pat_manip::competitive_word_output</code> nyní zabere 24,6 %, funkce <code class="function">vector::_M_insert_aux</code> 13,1 %. Ze zbylých funkcí nezabírá žádná více než 5 %.
						</p>
                        </li>
                        <li>
                           <p>
							Z grafu funkcí je patrné, že se příliš často zbytečně prochází několika funkcemi (zavolá se funkce, která pouze zavolá jinou funkci).
						</p>
                        </li>
                     </ul>
                  </div>
                  <p>
			
                  </p>
               </div>
            </div>
         </div>
         <div class="chapter" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="ch05"/>Kapitola 5. Generování vzorů dělení slov</h2>
                  </div>
               </div>
            </div>
            <p>
		Technika vzorů je jednou z nejefektivnějších metod pro uchovávání důležitých informací o datech a jejich následné rozpoznávání. Ukázala se být obzvláště výhodnou pro ukládání a rozpoznávání vhodných míst pro dělení slov. V tomto smyslu je implementována nejen v TeXu, ale i v mnoha jiných (i komerčních) produktech. Přestože má tato metoda podstatně širší uplatnění, zmíněno bude pouze toto její uplatnění. 
	</p>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0501"/>Vzory</h2>
                     </div>
                  </div>
               </div>
               <p>
			Vzor je řetězec znaků nad stejnou abecedou, která je použita ve zpracovávaných textech (vzory jsou podřetězce slov z těchto textů). Vzory se používají pro popis pozic v textu s danou vlastností. To může být například pozice vhodná pro rozdělení slova. Informace spojená s touto pozicí určuje, jestli je vhodná (<span class="emphasis">
                     <em>pokrývací</em>
                  </span> vzor) nebo není (<span class="emphasis">
                     <em>zabraňující</em>
                  </span> vzor). Většinou se pro reprezentaci této informace používají přirozená čísla – sudá pro pokrývací, lichá pro zabraňující. Kromě toho se ještě používají i další symboly (např. symbol „<span class="quote">.</span>“ pro označení začátku nebo konce slova). Vzory jsou např. „<span class="quote">1na</span>“, „<span class="quote">la2p</span>“, „<span class="quote">i2hl</span>“.
		</p>
               <p>
			Aplikace vzorů na dané slovo probíhá podle následujícího postupu:
			</p>
               <div class="orderedlist">
                  <ol type="1">
                     <li>
                        <p>Pro všechna podslova zadaného slova se vyhledají všechny odpovídající vzory.</p>
                     </li>
                     <li>
                        <p>Vzory spolu následně „<span class="quote">soutěží</span>“ – pokud se vzory na některé pozici v hodnotách překrývají, vyhrává ten s vyšší hodnotou (pokud danou pozici nepokrývá žádný vzor, je její hodnota 0).</p>
                     </li>
                     <li>
                        <p>Jako vhodná pro rozdělení slova jsou pak ta místa, která mají nejvyšší liché hodnoty.</p>
                     </li>
                  </ol>
               </div>
               <p>
			Výše uvedený postup je názorně ukázán na následujícím příkladu.
</p>
               <pre class="programlisting">
.h y p h e n a t i o n.   slovo
          1n a
              1t i o
           n2a t
                2i o      vzory
       h e2n
.h y3p h
       h e n a4
       h e n5a t
.h0y3p0h0e2n5a4t2i0o0n.   vítězný vzor
 h y-p h e n-a t i o n    vhodná místa pro dělení slova
</pre>
               <p>

		
               </p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0502"/>Generování vzorů</h2>
                     </div>
                  </div>
               </div>
               <p>
			Pro generování vzorů potřebujeme dostatečně velkou množinu vstupních dat, ve kterých jsou již označena místa, která nás zajímají.
		</p>
               <p>
			Tato data se poté několikrát procházejí. Při lichých průchodech se hledají pokrývací vzory, při sudých zabraňující. Při každém průchodu se nejprve vyberou vhodní kandidáti na vzory podle zadaného pravidla (např. všechny podřetězce slov obsahující požadovanou pozici délky nejvýše x symbolů). Z těchto kandidátů se podle vhodného pravidla vyberou vzory. Takovým pravidlem je například jejich otestování na datech, ze kterých byli vybráni (určí se počty, kolikrát určili pozici dobře, kolikrát špatně a zvolí se přijatelná hodnota).
		</p>
               <p>
			Na tomto principu pracují oba programy uvedené v následující části.
		</p>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0503"/>Přehled existujících programů pro generování vzorů</h2>
                     </div>
                  </div>
               </div>
               <p>
			Prvním programem řešícím generování vzorů dělení slov pro TeX byl <span class="application">PatGen</span>. Pokusem o jeho nahrazení je pak program <span class="application">OPatGen</span> [<span class="citation">Antos</span>]. Následují jejich stručné charakteristiky:
		</p>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec050301"/>
                              <span class="application">PatGen</span>
                           </h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Autorem <span class="application">PatGenu</span> je Franklin Mark Liang [<span class="citation">Liang</span>]. Vzhledem k době vzniku tohoto programu (počátek 80. let) a požadavkům pro jeho vznik je zřejmé, že tento program již nevyhovuje dnešním potřebám. Je napsán v systému WEB. Mezi jeho hlavní nedostatky patří:
				</p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>
							Podporuje pouze osmibitové kódování (není navíc možné použít všechny symboly, některé mají speciální význam).
						</p>
                        </li>
                        <li>
                           <p>
							Je to monolitický program (není jednoznačně rozdělen na funkční bloky).
						</p>
                        </li>
                        <li>
                           <p>
							Je vysoce optimalizován na úkor přehlednosti a funkčnosti. Tyto úpravy ale byly nutné, aby mohl běžet na stroji PDP–10, což bylo požadavkem.
						</p>
                        </li>
                        <li>
                           <p>
							Používá statické datové struktury. Pokud se tyto struktury zaplní, program se ukončí a je nutno pozměnit zdrojový kód a znova program přeložit.
						</p>
                        </li>
                        <li>
                           <p>
							Nejvyšší počet úrovní (průchodů) je 9.
						</p>
                        </li>
                        <li>
                           <p>
							Jakékoli úpravy zdrojového kódu (např. přidání podpory pro UNICODE) by vyžadovalo obrovské úsilí a změnu velké části zdrojového kódu.
						</p>
                        </li>
                        <li>
                           <p>
							Je použitelný pouze pro generování vzorů dělení slov.
						</p>
                        </li>
                     </ul>
                  </div>
                  <p>
			
                  </p>
                  <p>
				Naopak jeho hlavní výhodou je rychlost.
			</p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec050302"/>
                              <span class="application">OPatGen</span>
                           </h3>
                        </div>
                     </div>
                  </div>
                  <p>
				
                     <span class="application">OPatGen</span> vznikl v rámci diplomové práce na Fakultě informatiky Masarykovy univerzity [<span class="citation">Antos</span>]. Jeho autorem je David Antoš. Základním požadavkem bylo vytvořit víceúčelovou knihovnu pro manipulaci se vzory. Výsledkem je knihovna <span class="application">PatLib</span>. <span class="application">OPatGen</span> je pouze aplikací této knihovny na generování vzorů dělení slov. <span class="application">PatLib</span> i <span class="application">OPatGen</span> jsou napsány v systému CWEB, jako programovací jazyk je použit C++. Jako datové struktury jsou použity zhuštěné digitální vyhledávací stromy (packed trie).
			</p>
                  <p>
				Mezi hlavní výhody <span class="application">OPatGenu</span> patří:
				</p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>
							Podporuje UNICODE (konkrétně kódování UTF–8).
						</p>
                        </li>
                        <li>
                           <p>
							Knihovna <span class="application">PatLib</span> nabízí široké možnosti použití.
						</p>
                        </li>
                        <li>
                           <p>
							Používá dynamické struktury (omezení je tedy až velikost operační paměti).
						</p>
                        </li>
                        <li>
                           <p>
							Má čistý objektový strukturovaný návrh.
						</p>
                        </li>
                        <li>
                           <p>
							Knihovna <span class="application">PatLib</span> je napsána s maximálním využitím šablon, což umožňuje flexibilnější definice typů.
						</p>
                        </li>
                        <li>
                           <p>
							Možnost použít libovolnou metodu výběru kandidátů.
						</p>
                        </li>
                     </ul>
                  </div>
                  <p>
			
                  </p>
                  <p>
				I <span class="application">OPatGen</span> má ale několik nevýhod, mezi něž patří:
				</p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>
							Rychlost. Překlad trvá v průměru 100 × déle než překlad <span class="application">PatGenu</span>. Doba generování vzorů ze stejných dat je v průměru 10 × delší než v případě <span class="application">PatGenu</span>.
						</p>
                        </li>
                        <li>
                           <p>
							Návrh je až příliš „<span class="quote">přeobjektovaný</span>“ a transparentní. Z výsledků profilování je patrné, že granularita návrhu jednotlivých tříd a částí je příliš jemná.
						</p>
                        </li>
                        <li>
                           <p>
							Alokace paměti je řešena sice nejjednodušším, ale také ne zrovna nejvhodnějším způsobem. Paměť pro datové struktury se alokuje pomocí třídy (šablony) <code class="classname">Growing_array</code> (používá kontejner <code class="classname">vector</code>). Pokud se objeví požadavek na neexistující prvek, vyvolá se funkce <code class="function">push_back</code> (součást kontejneru <code class="classname">vector</code>). Při každé alokaci paměti se tedy musí projít několika třídami a zavolat tuto funkci. To je sice transparentní řešení, ale z hlediska rychlosti to není optimální.
						</p>
                        </li>
                        <li>
                           <p>
							Použití šablon přináší mnohé výhody, ale i problémy. Program je díky nim méně čitelný (i přes kvalitní dokumentaci) a jsou problémy s přenositelností (program byl testován a přeložen pomocí překladače <span class="application">g++</span> verze 2.96, na novějších verzích řady 3 jej není možné přeložit). Problém přináší standardní šablonová knihovna C++ STL, jejíž implementace v překladačích není jednotná a přesná.
						</p>
                        </li>
                        <li>
                           <p>
							Implementace byla provedena spíše s ohledem na funkčnost a použitelnost. Optimalizace je obtížná (např. přílišná provázanost některých tříd brání jednoduché úpravě datových struktur).
						</p>
                        </li>
                     </ul>
                  </div>
                  <p>
			
                  </p>
               </div>
            </div>
            <div class="sect1" lang="cs">
               <div class="titlepage">
                  <div>
                     <div>
                        <h2 class="title" style="clear: both">
                           <a id="sec0504"/>
                           <span class="application">UPatGen</span>
                        </h2>
                     </div>
                  </div>
               </div>
               <p>
			Vzhledem k nevýhodám obou programů zmíněných v předchozí kapitole bylo rozhodnuto analyzovat dané problémy a navrhnout vhodné řešení. Výsledný návrh dostal pracovní jméno <span class="application">UPatGen</span> (Unicode PATtern GENerator).
		</p>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec050401"/>Hlavní cíle</h3>
                        </div>
                     </div>
                  </div>
                  <p>
			
                  </p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>
						Dostatečná obecnost (využití i pro jiné účely než jen generování vzorů dělení slov).
					</p>
                        </li>
                        <li>
                           <p>
						Modulární struktura.
					</p>
                        </li>
                        <li>
                           <p>
						Podpora pro UNICODE.
					</p>
                        </li>
                        <li>
                           <p>
						Přijatelná rychlost.
					</p>
                        </li>
                        <li>
                           <p>
						Stejné možnosti jako <span class="application">OPatGen</span>.
					</p>
                        </li>
                        <li>
                           <p>
						Kvalitní dokumentace.
					</p>
                        </li>
                        <li>
                           <p>
						Použití vhodné datové struktury.
					</p>
                        </li>
                        <li>
                           <p>
						Přenositelnost a stabilita.
					</p>
                        </li>
                        <li>
                           <p>
						Struktura umožňující případné úpravy.
					</p>
                        </li>
                        <li>
                           <p>
						Kompatibilita s <span class="application">PatGenem</span> a <span class="application">OPatGenem</span>.
					</p>
                        </li>
                     </ul>
                  </div>
                  <p>
			
                  </p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec050402"/>Návrh</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				Jako programovací jazyk byl zvolen jazyk C, hlavně z důvodů široké podpory, kompatibility a dlouhodobé stability.
			</p>
                  <p>
				Pro dokumentaci byl vybrán systém <span class="application">Doxygen</span>
                     <sup>[<a id="fn05040201" href="#ftn.fn05040201">6</a>]</sup>. Umožňuje psát dokumentaci jako speciálně formátované komentáře přímo ve zdrojovém kódu programu. Poté je možné z těchto kódů vygenerovat různé formáty dokumentů (HTML, XML, LaTeX, ...).
			</p>
                  <p>
				Jako jazyk pro dokumentaci byla zvolena angličtina.
			</p>
                  <p>
				Jako hlavní datová struktura byla vybrána knihovna <span class="application">Judy</span> [<span class="citation">Judy</span>], konkrétně její varianta <span class="application">JudySL</span>. Je to vlastně digitální strom na principu trie. Indexem je řetězec, výstupem je číslo. Knihovna a rozhraní je napsáno v jazyce C. Hlavní výhodou je vysoká optimalizace na rychlost, což kompenzuje i drobné komplikace při práci s ní (např. její dynamičnost).
			</p>
                  <p>
				Jako vstupně-výstupní kódování bylo rozhodnuto použít kódování UTF–8 vzhledem k nejvyšší efektivitě ze všech schémat definovaných ve standardu UNICODE. Je také nejvhodnější vzhledem k požadavku kompatibility s programem <span class="application">PatGen</span>. Bylo rozhodnuto neprovádět překlad znaků z UTF–8 do žádné vnitřní reprezentace, ale pracovat přímo v UTF–8. To přináší některé podstatné výhody:
				</p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>Nemusí se provádět žádný překlad, pouze kontrola správnosti vstupu (vícebajtových sekvencí).</p>
                        </li>
                        <li>
                           <p>Reprezentace řetězců jako pole typu <span class="type">char</span> by mělo být efektivnější než pole typu <span class="type">int</span>. Také práce s touto reprezentací je jednodušší (hlavně přístup k indexu pole Judy).</p>
                        </li>
                     </ul>
                  </div>
                  <p>
			
                  </p>
                  <p>
				Strukturní členění programu je zobrazeno na následujícím obrázku (<a href="#obr05040201" title="Obrázek 5.1. UPatGen – schéma">5.1 – „UPatGen – schéma“</a>).
				</p>
                  <div class="figure-float">
                     <div class="figure">
                        <a id="obr05040201"/>
                        <p class="title">
                           <b>Obrázek 5.1. UPatGen – schéma</b>
                        </p>
                        <div class="mediaobject" align="center">
                           <img src="upatgen-scheme.png" align="middle" alt="UPatGen – schéma"/>
                        </div>
                     </div>
                  </div>
                  <p>
				Každá část zde uvedená tvoří samostatný modul. Každý lze samostatně přeložit, výsledná aplikace vznikne slinkováním těchto modulů. Rozhraní je definováno pro každý modul v samostatném hlavičkovém souboru. Moduly nesmí přistupovat k jiným funkcím než těm, které jsou exportovány.
			</p>
                  <p>
				Zobrazené části mají tyto funkce:
				</p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>
							
                              <span class="emphasis">
                                 <em>UPatGen main</em>
                              </span> – hlavní program. Slouží k načítání argumentů a spouštění generování.
						</p>
                        </li>
                        <li>
                           <p>
							
                              <span class="emphasis">
                                 <em>UPatGen memory management</em>
                              </span> – základ používaný všemi ostatními částmi. Obsahuje funkce pro správu dynamické paměti.
						</p>
                        </li>
                        <li>
                           <p>
							
                              <span class="emphasis">
                                 <em>UPatGen generator</em>
                              </span> – zde jsou definovány funkce pro generování vzorů.
						</p>
                        </li>
                        <li>
                           <p>
							
                              <span class="emphasis">
                                 <em>UPatGen io manipulator</em>
                              </span> – Řeší vstupně-výstupní operace. Obsahuje funkce pro kontrolu správnosti vstupů (UTF–8).
						</p>
                        </li>
                        <li>
                           <p>
							
                              <span class="emphasis">
                                 <em>UPatGen data manipulator</em>
                              </span> – obsahuje funkce pro přístup k datovým strukturám.
						</p>
                        </li>
                     </ul>
                  </div>
                  <p>
			
                  </p>
               </div>
               <div class="sect2" lang="cs">
                  <div class="titlepage">
                     <div>
                        <div>
                           <h3 class="title">
                              <a id="sec050403"/>Implementace</h3>
                        </div>
                     </div>
                  </div>
                  <p>
				K implementaci výše uvedeného programu bylo přistoupeno až dodatečně a nebylo to cílem této práce, proto tento program není úplně dokončen. Nicméně byly implementovány některé jednotky a byla otestována funkčnost předchozího návrhu. Drobné komplikace nastaly s knihovnou Judy.
			</p>
                  <p>
				Jedním z hlavních požadavků na tento program byla rychlost. K dosažení co nejvyšší rychlosti by měly vést následující rozhodnutí:
				</p>
                  <div class="itemizedlist">
                     <ul type="disc">
                        <li>
                           <p>Použití knihovny <span class="application">Judy</span> (je rychlejší než <span class="type">packed trie</span> použité v <span class="application">OPatGenu</span>).</p>
                        </li>
                        <li>
                           <p>Modulární návrh programu v jazyce C zajišťuje, že v programu nebudou funkce vzájemně příliš provázány (problém šablon v <span class="application">OPatGenu</span>).</p>
                        </li>
                        <li>
                           <p>Každý modul si alokuje paměť podle svých potřeb, odkazy na tuto paměť se poté ukládají do speciálních polí pomocí funkcí z části <code class="classname">UPatGen memory management</code>. Tím je zajištěno jednoduché uvolnění veškeré dynamicky alokované paměti (stačí projít všechna tato pole).</p>
                        </li>
                        <li>
                           <p>Program neprovádí překlad z a do vnitřní reprezentace, ale pracuje přímo s řetězci v UTF–8. To by mělo přinést další zrychlení oproti <span class="application">PatGenu</span> a <span class="application">OPatGenu</span>.</p>
                        </li>
                     </ul>
                  </div>
                  <p>
				Díky výše uvedeným vlastnostem je očekávána rychlost <span class="application">UPatGenu</span> na úrovni programu <span class="application">PatGen</span>.
			</p>
                  <p>
				Zdrojové kódy a dokumentace ve formátu HTML jsou k dispozici na přiloženém CD (<a href="#app04" title="Příloha D. Obsah CD">D – „<i>Obsah CD</i>“</a>).
			</p>
                  <p>
				Na tomto programu budu dále pracovat a doufám, že ho dovedu k plně funkční verzi.
			</p>
               </div>
            </div>
            <div class="footnotes">
               <br/>
               <hr width="100" align="left"/>
               <div class="footnote">
                  <p>
                     <sup>[<a id="ftn.fn05040201" href="#fn05040201">6</a>] </sup>
                     <a href="http://www.stack.nl/~dimitri/doxygen/" target="_top">http://www.stack.nl/~dimitri/doxygen/</a>
                  </p>
               </div>
            </div>
         </div>
         <div class="chapter" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="ch06"/>Kapitola 6. Závěr</h2>
                  </div>
               </div>
            </div>
            <p>
		Je zřejmé, že i v dnešní době překotného vývoje počítačové techniky má cenu programy optimalizovat. Přestože je toto nepostradatelné pro aplikace kriticky závislé na výkonu, je vhodné myslet na to i při psaní běžných programů.
	</p>
            <p>
		Uvedeny byly základní metody pro optimalizaci programů. Podrobně popsána byla metoda optimalizace pomocí překladu. Tato metoda byla také použita pro následné testování.
	</p>
            <p>
		teTeX je jednou z nejpopulárnějších distribucí TeXu, proto se zdál být vhodným adeptem pro praktické ověření vlivu vybraných optimalizací. Tyto testy prokázaly, že optimalizace překladu u většiny těchto aplikací má rozhodně smysl (dosažené zrychlení oproti neoptimalizované verzi se pohybovalo mezi 6 % až 85 % v závislosti na použitém stroji a programu). Nejlépe se dařilo urychlit programy <span class="application">OPatGen</span> (zrychlení o 71–85 %) a <span class="application">PatGen</span> (zrychlení o 59–72 %), nejhůře na tom byl program <span class="application">Omega</span> (zrychlení o 6–11 %). U ostatních programů bylo dosaženo zrychlení v rozmezí 20 % až 40 %. Nejvýraznější vliv na výslednou rychlost mělo použití základních optimalizačních parametrů (<code class="option">-O1</code>, <code class="option">-O2</code> a <code class="option">-O3</code>).
	</p>
            <p>Zároveň bylo provedeno porovnání rychlostí daných aplikací na stejných datech. Velice zajímavý je rozdíl mezi programy <span class="application">TeX</span> a <span class="application">Omega</span> (rozdíl v rychlosti je zhruba dvacetinásobný ve prospěch programu <span class="application">TeX</span>). Výrazný rozdíl v rychlosti je také mezi programy <span class="application">PatGen</span> a <span class="application">OPatGen</span> (<span class="application">OPatGen</span> je zhruba desetkrát pomalejší než <span class="application">PatGen</span>). Z porovnání rychlostí programů pro generování do formátu PDF (<span class="application">pdfTeX</span> a kombinace <span class="application">TeX</span> a <span class="application">dvipdfm</span>) vyšlo najevo, že časově jsou oba tato řešení srovnatelná.
	</p>
            <p>
		Pokud by se měly tyto programy dále optimalizovat, bylo by nutné přímo pozměnit zdrojové kódy těchto programů.
	</p>
            <p>
		Podrobně analyzovány a testovány byly programy pro generování vzorů. Testy prokázaly výraznou degradaci rychlosti generování vzorů v případě použití programu <span class="application">OPatGen</span> (oproti programu <span class="application">PatGen</span>). Na základě provedené analýzy bylo rozhodnuto neprovádět optimalizaci tohoto programu (bylo by to příliš komplikované a výsledek by byl značně nejistý), ale navrhnout novou aplikaci. Hlavním požadavkem při tomto návrhu byla rychlost. Tento návrh dostal pracovní název <span class="application">UPatGen</span>. Byly implementovány některé jeho části pro účely prvních předběžných testů. Z nich vyplývá, že rychlost tohoto programu by se měla pohybovat přibližně na úrovni programu <span class="application">PatGen</span> (měl by tedy být několikanásobně rychlejší než <span class="application">OPatGen</span>). Na vývoji tohoto programu budu dále pracovat.
	</p>
         </div>
         <div class="appendix" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="app01"/>Příloha A. Parametry překladu</h2>
                  </div>
               </div>
            </div>
            <p>
		Konkrétní hodnoty jsou uvedeny v následujících tabulkách:
	</p>
            <div class="itemizedlist">
               <ul type="disc">
                  <li>
                     <p>Parametry překladu pro stroj č.1 jsou uvedeny v tabulce <a href="#tabA01" title="Tabulka A.1. Parametry překladu pro stroj č. 1 (Athlon XP 1700+)">A.1 – „Parametry překladu pro stroj č. 1 (Athlon XP 1700+)“</a>. Optimalizace používají překladače <span class="application">gcc</span> a <span class="application">g++</span> následujících verzí:
			</p>
                     <div class="variablelist">
                        <dl>
                           <dt>
                              <span class="term">Op–void – Op–24, </span>
                              <span class="term">Op–35</span>
                           </dt>
                           <dd>
                              <p>verze 3.2</p>
                           </dd>
                           <dt>
                              <span class="term">Op–25 – Op–34</span>
                           </dt>
                           <dd>
                              <p>verze 2.96</p>
                           </dd>
                        </dl>
                     </div>
                  </li>
                  <li>
                     <p>Parametry překladu pro stroj č.2 jsou uvedeny v tabulce <a href="#tabA02" title="Tabulka A.2. Parametry překladu pro stroj č. 2 (Intel Mobile Pentium III 800)">A.2 – „Parametry překladu pro stroj č. 2 (Intel Mobile Pentium III 800)“</a>. Optimalizace používají překladače <span class="application">gcc</span> a <span class="application">g++</span> následujících verzí:
			</p>
                     <div class="variablelist">
                        <dl>
                           <dt>
                              <span class="term">Op–void – Op–24, </span>
                              <span class="term">Op–35</span>
                           </dt>
                           <dd>
                              <p>verze 3.2</p>
                           </dd>
                           <dt>
                              <span class="term">Op–25 – Op–34</span>
                           </dt>
                           <dd>
                              <p>verze 2.96</p>
                           </dd>
                        </dl>
                     </div>
                  </li>
                  <li>
                     <p>Parametry překladu pro stroj č.3 jsou uvedeny v tabulce <a href="#tabA03" title="Tabulka A.3. Parametry překladu pro stroj č. 3 (Athlon XP 1600+)">A.3 – „Parametry překladu pro stroj č. 3 (Athlon XP 1600+)“</a>. Optimalizace používají překladače <span class="application">gcc</span> a <span class="application">g++</span> verze 2.96.
			</p>
                  </li>
                  <li>
                     <p>Parametry překladu pro stroj č.4 jsou uvedeny v tabulce <a href="#tabA04" title="Tabulka A.4. Parametry překladu pro stroj č. 4 (2 × Intel Xeon)">A.4 – „Parametry překladu pro stroj č. 4 (2 × Intel Xeon)“</a>. Optimalizace používají překladače <span class="application">gcc</span> a <span class="application">g++</span> následujících verzí:
			</p>
                     <div class="variablelist">
                        <dl>
                           <dt>
                              <span class="term">Op–void – Op–24, </span>
                              <span class="term">Op–35</span>
                           </dt>
                           <dd>
                              <p>verze 3.0.4</p>
                           </dd>
                           <dt>
                              <span class="term">Op–25 – Op–34</span>
                           </dt>
                           <dd>
                              <p>verze 2.95</p>
                           </dd>
                        </dl>
                     </div>
                  </li>
               </ul>
            </div>
            <div class="table">
               <a id="tabA01"/>
               <p class="title">
                  <b>Tabulka A.1. Parametry překladu pro stroj č. 1 (Athlon XP 1700+)</b>
               </p>
               <table summary="Parametry překladu pro stroj č. 1 (Athlon XP 1700+)" width="100%" border="1">
                  <colgroup>
                     <col/>
                     <col/>
                     <col/>
                     <col/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th>optimalizace</th>
                        <th align="center">argumenty překladu</th>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td valign="middle">Op–void</td>
                        <td align="left">–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–0</td>
                        <td align="left">–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–1</td>
                        <td align="left">–g –O1</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–2</td>
                        <td align="left">–g –O2</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–3</td>
                        <td align="left">–g –O3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–4</td>
                        <td align="left">–g –Os</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–5</td>
                        <td align="left">–g –O2 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–6</td>
                        <td align="left">–g –O2 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–7</td>
                        <td align="left">–g –O2 –march=athlon–xp –mcpu=athlon–xp</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–8</td>
                        <td align="left">–g –O2 –march=athlon–xp –mcpu=athlon–xp –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–9</td>
                        <td align="left">–g –O2 –march=athlon–xp –mcpu=athlon–xp –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–10</td>
                        <td align="left">–g –O2 –march=athlon–xp –mcpu=athlon–xp –fexpensive–optimizations –ffast–math</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–11</td>
                        <td align="left">–g –O3 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–12</td>
                        <td align="left">–g –O3 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–13</td>
                        <td align="left">–g –O3 –march=athlon–xp –mcpu=athlon–xp</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–14</td>
                        <td align="left">–g –O3 –march=athlon–xp –mcpu=athlon–xp –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–15</td>
                        <td align="left">–g –O3 –march=athlon–xp –mcpu=athlon–xp –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–16</td>
                        <td align="left">–g –O3 –march=athlon–xp –mcpu=athlon–xp –fexpensive–optimizations –ffast–math</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–17</td>
                        <td align="left">–g –O3 –march=athlon–xp –mcpu=athlon–xp –fexpensive–optimizations –ffast–math –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–18</td>
                        <td align="left">–g –O3 –march=athlon–xp –mcpu=athlon–xp –fexpensive–optimizations –ffast–math –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–19</td>
                        <td align="left">–g –O3 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–20</td>
                        <td align="left">–g –O3 –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–21</td>
                        <td align="left">–g –O3 –march=i386 –mcpu=i386 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–22</td>
                        <td align="left">–g –O3 –march=i386 –mcpu=i386 –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–23</td>
                        <td align="left">–g –O3 –march=i386 –mcpu=i386 –ffast–math –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–24</td>
                        <td align="left">–g –O3 –march=i386 –mcpu=i386 –ffast–math –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–25</td>
                        <td align="left">–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–26</td>
                        <td align="left">–g –O1</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–27</td>
                        <td align="left">–g –O2</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–28</td>
                        <td align="left">–g –O3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–29</td>
                        <td align="left">–g –Os</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–30</td>
                        <td align="left">–g –O2 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–31</td>
                        <td align="left">–g –O2 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–32</td>
                        <td align="left">–g –O3 –march=i686 –mcpu=i686 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–33</td>
                        <td align="left">–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–34</td>
                        <td align="left">–g –O3 –march=i686 –mcpu=i686 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–35</td>
                        <td align="left">–O3 –march=athlon–xp –mcpu=athlon–xp –ffast–math –funroll–loops –fomit–frame–pointer –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabA02"/>
               <p class="title">
                  <b>Tabulka A.2. Parametry překladu pro stroj č. 2 (Intel Mobile Pentium III 800)</b>
               </p>
               <table summary="Parametry překladu pro stroj č. 2 (Intel Mobile Pentium III 800)" width="100%" border="1">
                  <colgroup>
                     <col/>
                     <col/>
                     <col/>
                     <col/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th>optimalizace</th>
                        <th align="center">argumenty překladu</th>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td valign="middle">Op–void</td>
                        <td>–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–0</td>
                        <td>–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–1</td>
                        <td>–g –O1</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–2</td>
                        <td>–g –O2</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–3</td>
                        <td>–g –O3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–4</td>
                        <td>–g –Os</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–5</td>
                        <td>–g –O2 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–6</td>
                        <td>–g –O2 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–7</td>
                        <td>–g –O2 –march=pentium3 –mcpu=pentium3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–8</td>
                        <td>–g –O2 –march=pentium3 –mcpu=pentium3 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–9</td>
                        <td>–g –O2 –march=pentium3 –mcpu=pentium3 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–10</td>
                        <td>–g –O2 –march=pentium3 –mcpu=pentium3 –fexpensive–optimizations –ffast–math</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–11</td>
                        <td>–g –O3 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–12</td>
                        <td>–g –O3 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–13</td>
                        <td>–g –O3 –march=pentium3 –mcpu=pentium3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–14</td>
                        <td>–g –O3 –march=pentium3 –mcpu=pentium3 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–15</td>
                        <td>–g –O3 –march=pentium3 –mcpu=pentium3 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–16</td>
                        <td>–g –O3 –march=pentium3 –mcpu=pentium3 –fexpensive–optimizations –ffast–math</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–17</td>
                        <td>–g –O3 –march=pentium3 –mcpu=pentium3 –fexpensive–optimizations –ffast–math –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–18</td>
                        <td>–g –O3 –march=pentium3 –mcpu=pentium3 –fexpensive–optimizations –ffast–math –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–19</td>
                        <td>–g –O3 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–20</td>
                        <td>–g –O3 –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–21</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–22</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–23</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –ffast–math –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–24</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –ffast–math –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–25</td>
                        <td>–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–26</td>
                        <td>–g –O1</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–27</td>
                        <td>–g –O2</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–28</td>
                        <td>–g –O3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–29</td>
                        <td>–g –Os</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–30</td>
                        <td>–g –O2 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–31</td>
                        <td>–g –O2 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–32</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–33</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–34</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–35</td>
                        <td>–O3 –march=pentium3 –mcpu=pentium3 –ffast–math –funroll–loops –fomit–frame–pointer –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabA03"/>
               <p class="title">
                  <b>Tabulka A.3. Parametry překladu pro stroj č. 3 (Athlon XP 1600+)</b>
               </p>
               <table summary="Parametry překladu pro stroj č. 3 (Athlon XP 1600+)" width="100%" border="1">
                  <colgroup>
                     <col/>
                     <col/>
                     <col/>
                     <col/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th>optimalizace</th>
                        <th align="center">argumenty překladu</th>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td valign="middle">Op–void</td>
                        <td>–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–0</td>
                        <td>–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–1</td>
                        <td>–g –O1</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–2</td>
                        <td>–g –O2</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–3</td>
                        <td>–g –O3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–4</td>
                        <td>–g –Os</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–5</td>
                        <td>–g –O2 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–6</td>
                        <td>–g –O2 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–7</td>
                        <td>–g –O2 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–8</td>
                        <td>–g –O2 –march=i686 –mcpu=i686 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–9</td>
                        <td>–g –O2 –march=i686 –mcpu=i686 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–10</td>
                        <td>–g –O2 –march=i686 –mcpu=i686 –fexpensive–optimizations –ffast–math</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–11</td>
                        <td>–g –O3 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–12</td>
                        <td>–g –O3 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–14</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–15</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–16</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations –ffast–math</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–17</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations –ffast–math –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–18</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations –ffast–math –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–19</td>
                        <td>–g –O3 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–20</td>
                        <td>–g –O3 –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–21</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–22</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–23</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –ffast–math –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–24</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –ffast–math –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–35</td>
                        <td>–O3 –march=i686 –mcpu=i686 –ffast–math –funroll–loops –fomit–frame–pointer –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabA04"/>
               <p class="title">
                  <b>Tabulka A.4. Parametry překladu pro stroj č. 4 (2 × Intel Xeon)</b>
               </p>
               <table summary="Parametry překladu pro stroj č. 4 (2 × Intel Xeon)" width="100%" border="1">
                  <colgroup>
                     <col/>
                     <col/>
                     <col/>
                     <col/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th>optimalizace</th>
                        <th align="center">argumenty překladu</th>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td valign="middle">Op–void</td>
                        <td>–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–0</td>
                        <td>–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–1</td>
                        <td>–g –O1</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–2</td>
                        <td>–g –O2</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–3</td>
                        <td>–g –O3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–4</td>
                        <td>–g –Os</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–5</td>
                        <td>–g –O2 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–6</td>
                        <td>–g –O2 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–8</td>
                        <td>–g –O2 –march=i686 –mcpu=i686 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–9</td>
                        <td>–g –O2 –march=i686 –mcpu=i686 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–10</td>
                        <td>–g –O2 –march=i686 –mcpu=i686 –fexpensive–optimizations –ffast–math</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–11</td>
                        <td>–g –O3 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–12</td>
                        <td>–g –O3 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–13</td>
                        <td>–g –O3 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–14</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–15</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–16</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations –ffast–math</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–17</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations –ffast–math –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–18</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations –ffast–math –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–19</td>
                        <td>–g –O3 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–20</td>
                        <td>–g –O3 –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–21</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–22</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–23</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –ffast–math –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–24</td>
                        <td>–g –O3 –march=i386 –mcpu=i386 –ffast–math –funroll–all–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–25</td>
                        <td>–g –O0</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–26</td>
                        <td>–g –O1</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–27</td>
                        <td>–g –O2</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–28</td>
                        <td>–g –O3</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–29</td>
                        <td>–g –Os</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–30</td>
                        <td>–g –O2 –march=i386 –mcpu=i386</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–31</td>
                        <td>–g –O2 –march=i686 –mcpu=i686</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–32</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fomit–frame–pointer</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–33</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–34</td>
                        <td>–g –O3 –march=i686 –mcpu=i686 –funroll–loops</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                     <tr>
                        <td valign="middle">Op–35</td>
                        <td>–O3 –march=i686 –mcpu=i686 –ffast–math –funroll–loops –fomit–frame–pointer –fexpensive–optimizations</td>
                        <td class="auto-generated"> </td>
                        <td class="auto-generated"> </td>
                     </tr>
                  </tbody>
               </table>
            </div>
         </div>
         <div class="appendix" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="app02"/>Příloha B. Kompletní výsledky testů</h2>
                  </div>
               </div>
            </div>
            <p>
		Konkrétní hodnoty jsou uvedeny v následujících tabulkách:
	</p>
            <p>Stroj č. 1:</p>
            <div class="itemizedlist">
               <ul type="disc">
                  <li>
                     <p>Doby překladů jednotlivých programů jsou uvedeny v tabulce <a href="#tabB0101" title="Tabulka B.1. Doby překladů (s) pro stroj č. 1 (Athlon XP 1700+)">B.1 – „Doby překladů (s) pro stroj č. 1 (Athlon XP 1700+)“</a>.</p>
                  </li>
                  <li>
                     <p>Doby testů jednotlivých programů jsou uvedeny v tabulce <a href="#tabB0102" title="Tabulka B.2. Doby testů (s) pro stroj č. 1 (Athlon XP 1700+)">B.2 – „Doby testů (s) pro stroj č. 1 (Athlon XP 1700+)“</a>.</p>
                  </li>
                  <li>
                     <p>Velikosti přeložených programů jsou uvedeny v tabulce <a href="#tabB0103" title="Tabulka B.3. Velikosti přeložených programů (kB) pro stroj č. 1 (Athlon XP 1700+)">B.3 – „Velikosti přeložených programů (kB) pro stroj č. 1 (Athlon XP 1700+)“</a>.</p>
                  </li>
               </ul>
            </div>
            <p>Stroj č. 2:</p>
            <div class="itemizedlist">
               <ul type="disc">
                  <li>
                     <p>Doby překladů jednotlivých programů jsou uvedeny v tabulce <a href="#tabB0201" title="Tabulka B.4. Doby překladů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)">B.4 – „Doby překladů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)“</a>.</p>
                  </li>
                  <li>
                     <p>Doby testů jednotlivých programů jsou uvedeny v tabulce <a href="#tabB0202" title="Tabulka B.5. Doby testů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)">B.5 – „Doby testů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)“</a>.</p>
                  </li>
                  <li>
                     <p>Velikosti přeložených programů jsou uvedeny v tabulce <a href="#tabB0203" title="Tabulka B.6. Velikosti přeložených programů (kB) pro stroj č. 2 (Intel Mobile Pentium III 800)">B.6 – „Velikosti přeložených programů (kB) pro stroj č. 2 (Intel Mobile Pentium III 800)“</a>.</p>
                  </li>
               </ul>
            </div>
            <p>Stroj č. 3:</p>
            <div class="itemizedlist">
               <ul type="disc">
                  <li>
                     <p>Doby překladů jednotlivých programů jsou uvedeny v tabulce <a href="#tabB0301" title="Tabulka B.7. Doby překladů (s) pro stroj č. 3 (Athlon XP 1600+)">B.7 – „Doby překladů (s) pro stroj č. 3 (Athlon XP 1600+)“</a>.</p>
                  </li>
                  <li>
                     <p>Doby testů jednotlivých programů jsou uvedeny v tabulce <a href="#tabB0302" title="Tabulka B.8. Doby testů (s) pro stroj č. 3  (Athlon XP 1600+)">B.8 – „Doby testů (s) pro stroj č. 3  (Athlon XP 1600+)“</a>.</p>
                  </li>
                  <li>
                     <p>Velikosti přeložených programů jsou uvedeny v tabulce <a href="#tabB0303" title="Tabulka B.9. Velikosti přeložených programů (kB) pro stroj č. 3 (Athlon XP 1600+)">B.9 – „Velikosti přeložených programů (kB) pro stroj č. 3 (Athlon XP 1600+)“</a>.</p>
                  </li>
               </ul>
            </div>
            <p>Stroj č. 4:</p>
            <div class="itemizedlist">
               <ul type="disc">
                  <li>
                     <p>Doby překladů jednotlivých programů jsou uvedeny v tabulce <a href="#tabB0401" title="Tabulka B.10. Doby překladů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)">B.10 – „Doby překladů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)“</a>.</p>
                  </li>
                  <li>
                     <p>Doby testů jednotlivých programů jsou uvedeny v tabulce <a href="#tabB0402" title="Tabulka B.11. Doby testů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)">B.11 – „Doby testů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)“</a>.</p>
                  </li>
                  <li>
                     <p>Velikosti přeložených programů jsou uvedeny v tabulce <a href="#tabB0403" title="Tabulka B.12. Velikosti přeložených programů (kB) pro stroj č. 4 (2 × Intel Xeon 2,2)">B.12 – „Velikosti přeložených programů (kB) pro stroj č. 4 (2 × Intel Xeon 2,2)“</a>.</p>
                  </li>
               </ul>
            </div>
            <div class="table">
               <a id="tabB0101"/>
               <p class="title">
                  <b>Tabulka B.1. Doby překladů (s) pro stroj č. 1 (Athlon XP 1700+)</b>
               </p>
               <table summary="Doby překladů (s) pro stroj č. 1 (Athlon XP 1700+)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">0.37</td>
                        <td align="right">4.92</td>
                        <td align="right">4.22</td>
                        <td align="right">4.96</td>
                        <td align="right">9.78</td>
                        <td align="right">7.15</td>
                        <td align="right">8.66</td>
                        <td align="right">5.64</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">0.53</td>
                        <td align="right">44.43</td>
                        <td align="right">6.88</td>
                        <td align="right">8.16</td>
                        <td align="right">15.02</td>
                        <td align="right">11.61</td>
                        <td align="right">14.19</td>
                        <td align="right">8.51</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">0.80</td>
                        <td align="right">71.13</td>
                        <td align="right">11.43</td>
                        <td align="right">13.47</td>
                        <td align="right">22.99</td>
                        <td align="right">18.90</td>
                        <td align="right">25.62</td>
                        <td align="right">11.80</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">0.91</td>
                        <td align="right">72.49</td>
                        <td align="right">34.50</td>
                        <td align="right">42.25</td>
                        <td align="right">59.14</td>
                        <td align="right">57.88</td>
                        <td align="right">36.06</td>
                        <td align="right">14.06</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">0.74</td>
                        <td align="right">103.30</td>
                        <td align="right">9.93</td>
                        <td align="right">11.90</td>
                        <td align="right">19.77</td>
                        <td align="right">16.84</td>
                        <td align="right">23.02</td>
                        <td align="right">9.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">0.79</td>
                        <td align="right">4.57</td>
                        <td align="right">11.38</td>
                        <td align="right">13.45</td>
                        <td align="right">22.38</td>
                        <td align="right">18.88</td>
                        <td align="right">25.62</td>
                        <td align="right">11.77</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">0.83</td>
                        <td align="right">4.61</td>
                        <td align="right">10.95</td>
                        <td align="right">12.95</td>
                        <td align="right">21.40</td>
                        <td align="right">18.09</td>
                        <td align="right">25.45</td>
                        <td align="right">11.37</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">0.86</td>
                        <td align="right">73.06</td>
                        <td align="right">11.04</td>
                        <td align="right">13.04</td>
                        <td align="right">21.96</td>
                        <td align="right">18.27</td>
                        <td align="right">25.28</td>
                        <td align="right">11.66</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">0.82</td>
                        <td align="right">4.75</td>
                        <td align="right">10.89</td>
                        <td align="right">12.85</td>
                        <td align="right">21.32</td>
                        <td align="right">17.74</td>
                        <td align="right">24.98</td>
                        <td align="right">11.59</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">0.85</td>
                        <td align="right">73.12</td>
                        <td align="right">10.99</td>
                        <td align="right">13.02</td>
                        <td align="right">22.14</td>
                        <td align="right">18.16</td>
                        <td align="right">25.24</td>
                        <td align="right">11.61</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">0.86</td>
                        <td align="right">72.14</td>
                        <td align="right">11.16</td>
                        <td align="right">13.15</td>
                        <td align="right">22.35</td>
                        <td align="right">18.28</td>
                        <td align="right">25.33</td>
                        <td align="right">12.08</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">0.90</td>
                        <td align="right">72.68</td>
                        <td align="right">34.61</td>
                        <td align="right">42.34</td>
                        <td align="right">59.12</td>
                        <td align="right">57.81</td>
                        <td align="right">36.15</td>
                        <td align="right">13.97</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">0.90</td>
                        <td align="right">73.43</td>
                        <td align="right">32.94</td>
                        <td align="right">40.29</td>
                        <td align="right">55.98</td>
                        <td align="right">55.21</td>
                        <td align="right">35.02</td>
                        <td align="right">13.89</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">0.91</td>
                        <td align="right">73.32</td>
                        <td align="right">32.88</td>
                        <td align="right">40.00</td>
                        <td align="right">56.08</td>
                        <td align="right">54.87</td>
                        <td align="right">34.55</td>
                        <td align="right">14.04</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">0.90</td>
                        <td align="right">75.80</td>
                        <td align="right">32.69</td>
                        <td align="right">39.92</td>
                        <td align="right">55.43</td>
                        <td align="right">54.54</td>
                        <td align="right">34.18</td>
                        <td align="right">13.76</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">0.92</td>
                        <td align="right">73.50</td>
                        <td align="right">32.88</td>
                        <td align="right">40.14</td>
                        <td align="right">56.07</td>
                        <td align="right">54.80</td>
                        <td align="right">34.63</td>
                        <td align="right">14.03</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">0.93</td>
                        <td align="right">73.50</td>
                        <td align="right">33.11</td>
                        <td align="right">40.42</td>
                        <td align="right">56.18</td>
                        <td align="right">55.39</td>
                        <td align="right">34.83</td>
                        <td align="right">14.43</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">1.13</td>
                        <td align="right">73.15</td>
                        <td align="right">34.41</td>
                        <td align="right">42.10</td>
                        <td align="right">61.17</td>
                        <td align="right">57.69</td>
                        <td align="right">35.66</td>
                        <td align="right">15.19</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">1.39</td>
                        <td align="right">77.75</td>
                        <td align="right">77.82</td>
                        <td align="right">98.59</td>
                        <td align="right">124.48</td>
                        <td align="right">133.18</td>
                        <td align="right">40.31</td>
                        <td align="right">16.34</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">1.04</td>
                        <td align="right">72.65</td>
                        <td align="right">35.90</td>
                        <td align="right">43.70</td>
                        <td align="right">63.73</td>
                        <td align="right">60.15</td>
                        <td align="right">36.94</td>
                        <td align="right">14.93</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">1.33</td>
                        <td align="right">77.31</td>
                        <td align="right">61.01</td>
                        <td align="right">75.78</td>
                        <td align="right">100.23</td>
                        <td align="right">102.53</td>
                        <td align="right">41.64</td>
                        <td align="right">15.93</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">1.05</td>
                        <td align="right">72.58</td>
                        <td align="right">35.85</td>
                        <td align="right">43.90</td>
                        <td align="right">63.72</td>
                        <td align="right">60.41</td>
                        <td align="right">37.06</td>
                        <td align="right">14.82</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">1.32</td>
                        <td align="right">77.53</td>
                        <td align="right">60.93</td>
                        <td align="right">76.01</td>
                        <td align="right">100.27</td>
                        <td align="right">102.44</td>
                        <td align="right">41.69</td>
                        <td align="right">15.88</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">1.10</td>
                        <td align="right">72.96</td>
                        <td align="right">35.93</td>
                        <td align="right">44.10</td>
                        <td align="right">63.91</td>
                        <td align="right">60.65</td>
                        <td align="right">37.10</td>
                        <td align="right">15.23</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">1.33</td>
                        <td align="right">77.68</td>
                        <td align="right">61.49</td>
                        <td align="right">76.35</td>
                        <td align="right">100.96</td>
                        <td align="right">102.86</td>
                        <td align="right">41.86</td>
                        <td align="right">16.19</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">0.31</td>
                        <td align="right">4.85</td>
                        <td align="right">3.65</td>
                        <td align="right">4.22</td>
                        <td align="right">8.33</td>
                        <td align="right">5.91</td>
                        <td align="right">7.37</td>
                        <td align="right">5.22</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">0.52</td>
                        <td align="right">44.20</td>
                        <td align="right">5.67</td>
                        <td align="right">6.44</td>
                        <td align="right">12.44</td>
                        <td align="right">8.91</td>
                        <td align="right">11.57</td>
                        <td align="right">7.76</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">0.69</td>
                        <td align="right">70.99</td>
                        <td align="right">8.65</td>
                        <td align="right">10.09</td>
                        <td align="right">17.84</td>
                        <td align="right">14.01</td>
                        <td align="right">19.16</td>
                        <td align="right">10.10</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">0.73</td>
                        <td align="right">72.45</td>
                        <td align="right">16.60</td>
                        <td align="right">20.81</td>
                        <td align="right">30.66</td>
                        <td align="right">28.55</td>
                        <td align="right">24.35</td>
                        <td align="right">10.85</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">0.65</td>
                        <td align="right">103.21</td>
                        <td align="right">8.42</td>
                        <td align="right">9.82</td>
                        <td align="right">16.97</td>
                        <td align="right">13.79</td>
                        <td align="right">19.53</td>
                        <td align="right">8.88</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">0.67</td>
                        <td align="right">4.63</td>
                        <td align="right">8.62</td>
                        <td align="right">10.12</td>
                        <td align="right">17.56</td>
                        <td align="right">14.14</td>
                        <td align="right">19.22</td>
                        <td align="right">10.38</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">0.74</td>
                        <td align="right">4.62</td>
                        <td align="right">8.75</td>
                        <td align="right">10.15</td>
                        <td align="right">17.63</td>
                        <td align="right">14.25</td>
                        <td align="right">19.52</td>
                        <td align="right">10.53</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">0.76</td>
                        <td align="right">75.72</td>
                        <td align="right">16.55</td>
                        <td align="right">20.64</td>
                        <td align="right">30.45</td>
                        <td align="right">28.40</td>
                        <td align="right">24.28</td>
                        <td align="right">11.12</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">0.78</td>
                        <td align="right">73.33</td>
                        <td align="right">16.75</td>
                        <td align="right">20.86</td>
                        <td align="right">30.72</td>
                        <td align="right">28.88</td>
                        <td align="right">24.59</td>
                        <td align="right">10.93</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">0.81</td>
                        <td align="right">73.14</td>
                        <td align="right">17.42</td>
                        <td align="right">21.88</td>
                        <td align="right">32.58</td>
                        <td align="right">29.78</td>
                        <td align="right">25.11</td>
                        <td align="right">11.80</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">1.08</td>
                        <td align="right">73.14</td>
                        <td align="right">33.65</td>
                        <td align="right">41.53</td>
                        <td align="right">59.45</td>
                        <td align="right">56.89</td>
                        <td align="right">34.91</td>
                        <td align="right">14.43</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0102"/>
               <p class="title">
                  <b>Tabulka B.2. Doby testů (s) pro stroj č. 1 (Athlon XP 1700+)</b>
               </p>
               <table summary="Doby testů (s) pro stroj č. 1 (Athlon XP 1700+)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">5.85</td>
                        <td align="right">48.11</td>
                        <td align="right">1.66</td>
                        <td align="right">1.77</td>
                        <td align="right">4.70</td>
                        <td align="right">4.80</td>
                        <td align="right">31.72</td>
                        <td align="right">2.61</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">2.18</td>
                        <td align="right">15.19</td>
                        <td align="right">1.39</td>
                        <td align="right">1.42</td>
                        <td align="right">3.22</td>
                        <td align="right">3.29</td>
                        <td align="right">29.90</td>
                        <td align="right">1.67</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">2.41</td>
                        <td align="right">15.60</td>
                        <td align="right">1.31</td>
                        <td align="right">1.36</td>
                        <td align="right">3.12</td>
                        <td align="right">3.18</td>
                        <td align="right">29.37</td>
                        <td align="right">1.71</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">2.18</td>
                        <td align="right">15.46</td>
                        <td align="right">1.26</td>
                        <td align="right">1.36</td>
                        <td align="right">3.09</td>
                        <td align="right">3.17</td>
                        <td align="right">29.41</td>
                        <td align="right">1.76</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">2.65</td>
                        <td align="right">15.26</td>
                        <td align="right">1.44</td>
                        <td align="right">1.45</td>
                        <td align="right">3.41</td>
                        <td align="right">3.43</td>
                        <td align="right">29.47</td>
                        <td align="right">1.96</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">2.43</td>
                        <td align="right">48.04</td>
                        <td align="right">1.32</td>
                        <td align="right">1.38</td>
                        <td align="right">3.10</td>
                        <td align="right">3.18</td>
                        <td align="right">29.41</td>
                        <td align="right">1.79</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">2.16</td>
                        <td align="right">45.41</td>
                        <td align="right">1.23</td>
                        <td align="right">1.33</td>
                        <td align="right">2.97</td>
                        <td align="right">3.04</td>
                        <td align="right">29.11</td>
                        <td align="right">1.76</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">2.59</td>
                        <td align="right">14.71</td>
                        <td align="right">1.22</td>
                        <td align="right">1.28</td>
                        <td align="right">2.92</td>
                        <td align="right">3.02</td>
                        <td align="right">29.02</td>
                        <td align="right">1.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">2.60</td>
                        <td align="right">40.29</td>
                        <td align="right">1.21</td>
                        <td align="right">1.26</td>
                        <td align="right">2.89</td>
                        <td align="right">2.89</td>
                        <td align="right">29.02</td>
                        <td align="right">1.71</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">2.60</td>
                        <td align="right">14.70</td>
                        <td align="right">1.19</td>
                        <td align="right">1.27</td>
                        <td align="right">2.90</td>
                        <td align="right">3.07</td>
                        <td align="right">29.04</td>
                        <td align="right">1.67</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">2.60</td>
                        <td align="right">14.73</td>
                        <td align="right">1.21</td>
                        <td align="right">1.29</td>
                        <td align="right">2.92</td>
                        <td align="right">2.99</td>
                        <td align="right">29.04</td>
                        <td align="right">1.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">2.17</td>
                        <td align="right">15.47</td>
                        <td align="right">1.27</td>
                        <td align="right">1.38</td>
                        <td align="right">3.15</td>
                        <td align="right">3.18</td>
                        <td align="right">29.40</td>
                        <td align="right">1.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">2.17</td>
                        <td align="right">15.02</td>
                        <td align="right">1.23</td>
                        <td align="right">1.29</td>
                        <td align="right">2.96</td>
                        <td align="right">2.96</td>
                        <td align="right">29.09</td>
                        <td align="right">1.63</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">2.59</td>
                        <td align="right">15.07</td>
                        <td align="right">1.21</td>
                        <td align="right">1.30</td>
                        <td align="right">2.97</td>
                        <td align="right">2.95</td>
                        <td align="right">29.06</td>
                        <td align="right">1.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">2.59</td>
                        <td align="right">13.22</td>
                        <td align="right">1.26</td>
                        <td align="right">1.24</td>
                        <td align="right">2.86</td>
                        <td align="right">2.93</td>
                        <td align="right">29.01</td>
                        <td align="right">1.66</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">2.60</td>
                        <td align="right">15.00</td>
                        <td align="right">1.21</td>
                        <td align="right">1.29</td>
                        <td align="right">2.90</td>
                        <td align="right">2.94</td>
                        <td align="right">28.99</td>
                        <td align="right">1.71</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">2.60</td>
                        <td align="right">15.02</td>
                        <td align="right">1.19</td>
                        <td align="right">1.24</td>
                        <td align="right">3.00</td>
                        <td align="right">3.04</td>
                        <td align="right">29.17</td>
                        <td align="right">1.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">1.63</td>
                        <td align="right">15.17</td>
                        <td align="right">1.24</td>
                        <td align="right">1.28</td>
                        <td align="right">2.99</td>
                        <td align="right">3.00</td>
                        <td align="right">29.07</td>
                        <td align="right">1.52</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">1.64</td>
                        <td align="right">14.93</td>
                        <td align="right">1.22</td>
                        <td align="right">1.29</td>
                        <td align="right">3.03</td>
                        <td align="right">3.10</td>
                        <td align="right">29.14</td>
                        <td align="right">1.61</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">1.62</td>
                        <td align="right">15.66</td>
                        <td align="right">1.32</td>
                        <td align="right">1.40</td>
                        <td align="right">3.19</td>
                        <td align="right">3.18</td>
                        <td align="right">29.38</td>
                        <td align="right">1.74</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">1.67</td>
                        <td align="right">15.55</td>
                        <td align="right">1.34</td>
                        <td align="right">1.40</td>
                        <td align="right">3.16</td>
                        <td align="right">3.20</td>
                        <td align="right">29.42</td>
                        <td align="right">1.77</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">1.63</td>
                        <td align="right">15.62</td>
                        <td align="right">1.31</td>
                        <td align="right">1.38</td>
                        <td align="right">3.19</td>
                        <td align="right">3.19</td>
                        <td align="right">29.37</td>
                        <td align="right">1.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">1.66</td>
                        <td align="right">15.50</td>
                        <td align="right">1.35</td>
                        <td align="right">1.39</td>
                        <td align="right">3.16</td>
                        <td align="right">3.20</td>
                        <td align="right">29.35</td>
                        <td align="right">1.75</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">1.63</td>
                        <td align="right">15.83</td>
                        <td align="right">1.34</td>
                        <td align="right">1.38</td>
                        <td align="right">3.08</td>
                        <td align="right">3.15</td>
                        <td align="right">29.38</td>
                        <td align="right">1.74</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">1.66</td>
                        <td align="right">15.45</td>
                        <td align="right">1.31</td>
                        <td align="right">1.39</td>
                        <td align="right">3.24</td>
                        <td align="right">3.20</td>
                        <td align="right">29.45</td>
                        <td align="right">1.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">5.46</td>
                        <td align="right">47.91</td>
                        <td align="right">1.79</td>
                        <td align="right">1.87</td>
                        <td align="right">4.99</td>
                        <td align="right">4.95</td>
                        <td align="right">31.97</td>
                        <td align="right">2.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">2.22</td>
                        <td align="right">15.20</td>
                        <td align="right">1.35</td>
                        <td align="right">1.42</td>
                        <td align="right">3.30</td>
                        <td align="right">3.41</td>
                        <td align="right">29.90</td>
                        <td align="right">1.85</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">2.20</td>
                        <td align="right">15.50</td>
                        <td align="right">1.36</td>
                        <td align="right">1.34</td>
                        <td align="right">3.30</td>
                        <td align="right">3.35</td>
                        <td align="right">29.48</td>
                        <td align="right">1.86</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">2.24</td>
                        <td align="right">15.47</td>
                        <td align="right">1.37</td>
                        <td align="right">1.40</td>
                        <td align="right">3.29</td>
                        <td align="right">3.45</td>
                        <td align="right">29.51</td>
                        <td align="right">1.76</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">2.20</td>
                        <td align="right">15.22</td>
                        <td align="right">1.35</td>
                        <td align="right">1.39</td>
                        <td align="right">3.37</td>
                        <td align="right">3.35</td>
                        <td align="right">29.60</td>
                        <td align="right">1.81</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">2.19</td>
                        <td align="right">48.01</td>
                        <td align="right">1.35</td>
                        <td align="right">1.40</td>
                        <td align="right">3.22</td>
                        <td align="right">3.31</td>
                        <td align="right">29.52</td>
                        <td align="right">1.82</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">2.19</td>
                        <td align="right">45.51</td>
                        <td align="right">1.31</td>
                        <td align="right">1.36</td>
                        <td align="right">3.19</td>
                        <td align="right">3.27</td>
                        <td align="right">29.06</td>
                        <td align="right">1.77</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">2.19</td>
                        <td align="right">13.14</td>
                        <td align="right">1.25</td>
                        <td align="right">1.34</td>
                        <td align="right">3.12</td>
                        <td align="right">3.19</td>
                        <td align="right">29.12</td>
                        <td align="right">1.72</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">2.20</td>
                        <td align="right">15.08</td>
                        <td align="right">1.33</td>
                        <td align="right">1.33</td>
                        <td align="right">3.15</td>
                        <td align="right">3.13</td>
                        <td align="right">29.03</td>
                        <td align="right">1.80</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">2.19</td>
                        <td align="right">15.19</td>
                        <td align="right">1.31</td>
                        <td align="right">1.35</td>
                        <td align="right">3.21</td>
                        <td align="right">3.30</td>
                        <td align="right">29.11</td>
                        <td align="right">1.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">1.63</td>
                        <td align="right">13.29</td>
                        <td align="right">1.19</td>
                        <td align="right">1.31</td>
                        <td align="right">2.95</td>
                        <td align="right">2.95</td>
                        <td align="right">29.52</td>
                        <td align="right">1.60</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0103"/>
               <p class="title">
                  <b>Tabulka B.3. Velikosti přeložených programů (kB) pro stroj č. 1 (Athlon XP 1700+)</b>
               </p>
               <table summary="Velikosti přeložených programů (kB) pro stroj č. 1 (Athlon XP 1700+)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">36</td>
                        <td align="right">176</td>
                        <td align="right">320</td>
                        <td align="right">364</td>
                        <td align="right">1132</td>
                        <td align="right">1176</td>
                        <td align="right">560</td>
                        <td align="right">436</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">32</td>
                        <td align="right">560</td>
                        <td align="right">252</td>
                        <td align="right">284</td>
                        <td align="right">860</td>
                        <td align="right">892</td>
                        <td align="right">396</td>
                        <td align="right">336</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">32</td>
                        <td align="right">592</td>
                        <td align="right">256</td>
                        <td align="right">288</td>
                        <td align="right">880</td>
                        <td align="right">916</td>
                        <td align="right">408</td>
                        <td align="right">340</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">32</td>
                        <td align="right">596</td>
                        <td align="right">428</td>
                        <td align="right">476</td>
                        <td align="right">1192</td>
                        <td align="right">1228</td>
                        <td align="right">512</td>
                        <td align="right">360</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">28</td>
                        <td align="right">556</td>
                        <td align="right">236</td>
                        <td align="right">268</td>
                        <td align="right">820</td>
                        <td align="right">852</td>
                        <td align="right">372</td>
                        <td align="right">316</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">32</td>
                        <td align="right">176</td>
                        <td align="right">256</td>
                        <td align="right">288</td>
                        <td align="right">992</td>
                        <td align="right">1024</td>
                        <td align="right">408</td>
                        <td align="right">340</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">32</td>
                        <td align="right">184</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">1020</td>
                        <td align="right">1056</td>
                        <td align="right">436</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">32</td>
                        <td align="right">600</td>
                        <td align="right">272</td>
                        <td align="right">308</td>
                        <td align="right">920</td>
                        <td align="right">956</td>
                        <td align="right">432</td>
                        <td align="right">376</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">32</td>
                        <td align="right">260</td>
                        <td align="right">272</td>
                        <td align="right">308</td>
                        <td align="right">1052</td>
                        <td align="right">1088</td>
                        <td align="right">432</td>
                        <td align="right">380</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">32</td>
                        <td align="right">600</td>
                        <td align="right">272</td>
                        <td align="right">308</td>
                        <td align="right">920</td>
                        <td align="right">956</td>
                        <td align="right">432</td>
                        <td align="right">376</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">32</td>
                        <td align="right">600</td>
                        <td align="right">272</td>
                        <td align="right">308</td>
                        <td align="right">920</td>
                        <td align="right">956</td>
                        <td align="right">432</td>
                        <td align="right">376</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">32</td>
                        <td align="right">596</td>
                        <td align="right">428</td>
                        <td align="right">476</td>
                        <td align="right">1192</td>
                        <td align="right">1228</td>
                        <td align="right">512</td>
                        <td align="right">360</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">444</td>
                        <td align="right">492</td>
                        <td align="right">1244</td>
                        <td align="right">1280</td>
                        <td align="right">528</td>
                        <td align="right">404</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">436</td>
                        <td align="right">484</td>
                        <td align="right">1224</td>
                        <td align="right">1260</td>
                        <td align="right">524</td>
                        <td align="right">396</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">36</td>
                        <td align="right">868</td>
                        <td align="right">440</td>
                        <td align="right">488</td>
                        <td align="right">1228</td>
                        <td align="right">1264</td>
                        <td align="right">528</td>
                        <td align="right">404</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">436</td>
                        <td align="right">484</td>
                        <td align="right">1224</td>
                        <td align="right">1260</td>
                        <td align="right">524</td>
                        <td align="right">396</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">436</td>
                        <td align="right">484</td>
                        <td align="right">1224</td>
                        <td align="right">1260</td>
                        <td align="right">524</td>
                        <td align="right">396</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">40</td>
                        <td align="right">612</td>
                        <td align="right">448</td>
                        <td align="right">500</td>
                        <td align="right">1368</td>
                        <td align="right">1404</td>
                        <td align="right">532</td>
                        <td align="right">444</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">56</td>
                        <td align="right">656</td>
                        <td align="right">864</td>
                        <td align="right">948</td>
                        <td align="right">2008</td>
                        <td align="right">2048</td>
                        <td align="right">628</td>
                        <td align="right">504</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">440</td>
                        <td align="right">488</td>
                        <td align="right">1332</td>
                        <td align="right">1364</td>
                        <td align="right">524</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">760</td>
                        <td align="right">832</td>
                        <td align="right">1824</td>
                        <td align="right">1856</td>
                        <td align="right">608</td>
                        <td align="right">460</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">440</td>
                        <td align="right">488</td>
                        <td align="right">1332</td>
                        <td align="right">1364</td>
                        <td align="right">524</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">760</td>
                        <td align="right">832</td>
                        <td align="right">1824</td>
                        <td align="right">1856</td>
                        <td align="right">608</td>
                        <td align="right">460</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">440</td>
                        <td align="right">488</td>
                        <td align="right">1332</td>
                        <td align="right">1364</td>
                        <td align="right">524</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">760</td>
                        <td align="right">832</td>
                        <td align="right">1824</td>
                        <td align="right">1856</td>
                        <td align="right">608</td>
                        <td align="right">460</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">40</td>
                        <td align="right">176</td>
                        <td align="right">332</td>
                        <td align="right">376</td>
                        <td align="right">1104</td>
                        <td align="right">1152</td>
                        <td align="right">588</td>
                        <td align="right">456</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">32</td>
                        <td align="right">560</td>
                        <td align="right">264</td>
                        <td align="right">296</td>
                        <td align="right">856</td>
                        <td align="right">892</td>
                        <td align="right">412</td>
                        <td align="right">348</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">32</td>
                        <td align="right">592</td>
                        <td align="right">256</td>
                        <td align="right">292</td>
                        <td align="right">844</td>
                        <td align="right">880</td>
                        <td align="right">404</td>
                        <td align="right">344</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">32</td>
                        <td align="right">596</td>
                        <td align="right">380</td>
                        <td align="right">444</td>
                        <td align="right">1060</td>
                        <td align="right">1124</td>
                        <td align="right">488</td>
                        <td align="right">364</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">32</td>
                        <td align="right">556</td>
                        <td align="right">252</td>
                        <td align="right">288</td>
                        <td align="right">836</td>
                        <td align="right">868</td>
                        <td align="right">400</td>
                        <td align="right">336</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">32</td>
                        <td align="right">176</td>
                        <td align="right">256</td>
                        <td align="right">292</td>
                        <td align="right">944</td>
                        <td align="right">976</td>
                        <td align="right">404</td>
                        <td align="right">344</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">36</td>
                        <td align="right">184</td>
                        <td align="right">268</td>
                        <td align="right">304</td>
                        <td align="right">980</td>
                        <td align="right">1016</td>
                        <td align="right">436</td>
                        <td align="right">364</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">36</td>
                        <td align="right">868</td>
                        <td align="right">396</td>
                        <td align="right">460</td>
                        <td align="right">1224</td>
                        <td align="right">1292</td>
                        <td align="right">516</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">400</td>
                        <td align="right">468</td>
                        <td align="right">1116</td>
                        <td align="right">1180</td>
                        <td align="right">520</td>
                        <td align="right">388</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">36</td>
                        <td align="right">612</td>
                        <td align="right">408</td>
                        <td align="right">476</td>
                        <td align="right">1196</td>
                        <td align="right">1264</td>
                        <td align="right">528</td>
                        <td align="right">428</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">40</td>
                        <td align="right">872</td>
                        <td align="right">448</td>
                        <td align="right">500</td>
                        <td align="right">1372</td>
                        <td align="right">1408</td>
                        <td align="right">536</td>
                        <td align="right">452</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0201"/>
               <p class="title">
                  <b>Tabulka B.4. Doby překladů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)</b>
               </p>
               <table summary="Doby překladů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">0.77</td>
                        <td align="right">9.13</td>
                        <td align="right">8.68</td>
                        <td align="right">10.11</td>
                        <td align="right">19.80</td>
                        <td align="right">14.43</td>
                        <td align="right">17.66</td>
                        <td align="right">11.62</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">1.14</td>
                        <td align="right">81.06</td>
                        <td align="right">14.35</td>
                        <td align="right">16.80</td>
                        <td align="right">30.59</td>
                        <td align="right">23.44</td>
                        <td align="right">29.28</td>
                        <td align="right">17.42</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">1.68</td>
                        <td align="right">129.91</td>
                        <td align="right">23.73</td>
                        <td align="right">27.92</td>
                        <td align="right">47.44</td>
                        <td align="right">38.96</td>
                        <td align="right">52.40</td>
                        <td align="right">24.43</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">1.83</td>
                        <td align="right">133.17</td>
                        <td align="right">64.60</td>
                        <td align="right">77.45</td>
                        <td align="right">111.39</td>
                        <td align="right">105.10</td>
                        <td align="right">72.08</td>
                        <td align="right">29.36</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">1.46</td>
                        <td align="right">173.00</td>
                        <td align="right">20.72</td>
                        <td align="right">24.70</td>
                        <td align="right">41.12</td>
                        <td align="right">34.40</td>
                        <td align="right">46.91</td>
                        <td align="right">20.16</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">1.68</td>
                        <td align="right">8.65</td>
                        <td align="right">23.70</td>
                        <td align="right">27.96</td>
                        <td align="right">46.39</td>
                        <td align="right">38.90</td>
                        <td align="right">52.45</td>
                        <td align="right">24.53</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">1.72</td>
                        <td align="right">8.65</td>
                        <td align="right">22.97</td>
                        <td align="right">27.10</td>
                        <td align="right">44.31</td>
                        <td align="right">37.39</td>
                        <td align="right">51.83</td>
                        <td align="right">24.06</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">1.70</td>
                        <td align="right">135.35</td>
                        <td align="right">23.02</td>
                        <td align="right">27.08</td>
                        <td align="right">45.58</td>
                        <td align="right">37.57</td>
                        <td align="right">52.00</td>
                        <td align="right">24.15</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">1.70</td>
                        <td align="right">8.90</td>
                        <td align="right">22.68</td>
                        <td align="right">26.74</td>
                        <td align="right">43.98</td>
                        <td align="right">36.91</td>
                        <td align="right">51.28</td>
                        <td align="right">23.86</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">1.72</td>
                        <td align="right">135.09</td>
                        <td align="right">23.03</td>
                        <td align="right">27.06</td>
                        <td align="right">45.58</td>
                        <td align="right">37.57</td>
                        <td align="right">51.75</td>
                        <td align="right">24.13</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">1.75</td>
                        <td align="right">132.70</td>
                        <td align="right">23.23</td>
                        <td align="right">27.36</td>
                        <td align="right">46.18</td>
                        <td align="right">37.81</td>
                        <td align="right">52.19</td>
                        <td align="right">24.92</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">1.85</td>
                        <td align="right">132.95</td>
                        <td align="right">64.64</td>
                        <td align="right">77.67</td>
                        <td align="right">111.59</td>
                        <td align="right">105.49</td>
                        <td align="right">72.18</td>
                        <td align="right">29.37</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">1.87</td>
                        <td align="right">136.07</td>
                        <td align="right">61.27</td>
                        <td align="right">73.09</td>
                        <td align="right">105.19</td>
                        <td align="right">99.23</td>
                        <td align="right">69.40</td>
                        <td align="right">29.23</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">1.87</td>
                        <td align="right">136.37</td>
                        <td align="right">61.50</td>
                        <td align="right">72.82</td>
                        <td align="right">104.90</td>
                        <td align="right">99.61</td>
                        <td align="right">69.62</td>
                        <td align="right">29.18</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">1.86</td>
                        <td align="right">141.70</td>
                        <td align="right">60.97</td>
                        <td align="right">72.48</td>
                        <td align="right">104.16</td>
                        <td align="right">98.67</td>
                        <td align="right">68.55</td>
                        <td align="right">28.93</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">1.88</td>
                        <td align="right">136.18</td>
                        <td align="right">61.27</td>
                        <td align="right">73.11</td>
                        <td align="right">104.65</td>
                        <td align="right">100.11</td>
                        <td align="right">69.62</td>
                        <td align="right">29.23</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">1.95</td>
                        <td align="right">133.94</td>
                        <td align="right">61.40</td>
                        <td align="right">72.67</td>
                        <td align="right">105.78</td>
                        <td align="right">100.10</td>
                        <td align="right">70.08</td>
                        <td align="right">29.96</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">2.34</td>
                        <td align="right">135.31</td>
                        <td align="right">64.31</td>
                        <td align="right">77.37</td>
                        <td align="right">116.27</td>
                        <td align="right">105.33</td>
                        <td align="right">71.41</td>
                        <td align="right">31.84</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">2.99</td>
                        <td align="right">144.89</td>
                        <td align="right">169.10</td>
                        <td align="right">220.66</td>
                        <td align="right">271.34</td>
                        <td align="right">301.59</td>
                        <td align="right">80.97</td>
                        <td align="right">34.18</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">2.20</td>
                        <td align="right">131.34</td>
                        <td align="right">67.51</td>
                        <td align="right">81.13</td>
                        <td align="right">121.02</td>
                        <td align="right">111.46</td>
                        <td align="right">73.73</td>
                        <td align="right">31.14</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">2.73</td>
                        <td align="right">146.02</td>
                        <td align="right">124.08</td>
                        <td align="right">154.24</td>
                        <td align="right">205.87</td>
                        <td align="right">211.40</td>
                        <td align="right">83.05</td>
                        <td align="right">33.30</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">2.21</td>
                        <td align="right">131.95</td>
                        <td align="right">67.51</td>
                        <td align="right">80.94</td>
                        <td align="right">121.07</td>
                        <td align="right">112.17</td>
                        <td align="right">73.74</td>
                        <td align="right">31.06</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">2.75</td>
                        <td align="right">144.22</td>
                        <td align="right">125.05</td>
                        <td align="right">154.29</td>
                        <td align="right">206.49</td>
                        <td align="right">211.01</td>
                        <td align="right">83.08</td>
                        <td align="right">33.26</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">2.26</td>
                        <td align="right">132.36</td>
                        <td align="right">67.97</td>
                        <td align="right">81.36</td>
                        <td align="right">122.04</td>
                        <td align="right">111.47</td>
                        <td align="right">74.06</td>
                        <td align="right">31.75</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">2.76</td>
                        <td align="right">144.98</td>
                        <td align="right">124.82</td>
                        <td align="right">156.75</td>
                        <td align="right">209.70</td>
                        <td align="right">209.28</td>
                        <td align="right">83.86</td>
                        <td align="right">34.01</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">0.66</td>
                        <td align="right">9.14</td>
                        <td align="right">7.38</td>
                        <td align="right">8.60</td>
                        <td align="right">17.08</td>
                        <td align="right">12.02</td>
                        <td align="right">14.98</td>
                        <td align="right">10.48</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">1.00</td>
                        <td align="right">81.34</td>
                        <td align="right">11.30</td>
                        <td align="right">13.07</td>
                        <td align="right">24.94</td>
                        <td align="right">17.77</td>
                        <td align="right">22.68</td>
                        <td align="right">15.78</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">1.38</td>
                        <td align="right">130.09</td>
                        <td align="right">17.25</td>
                        <td align="right">20.24</td>
                        <td align="right">36.04</td>
                        <td align="right">28.00</td>
                        <td align="right">37.43</td>
                        <td align="right">20.68</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">1.48</td>
                        <td align="right">133.55</td>
                        <td align="right">32.83</td>
                        <td align="right">40.10</td>
                        <td align="right">60.97</td>
                        <td align="right">56.62</td>
                        <td align="right">47.02</td>
                        <td align="right">22.02</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">1.29</td>
                        <td align="right">172.69</td>
                        <td align="right">16.69</td>
                        <td align="right">19.60</td>
                        <td align="right">33.85</td>
                        <td align="right">27.26</td>
                        <td align="right">37.92</td>
                        <td align="right">17.85</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">1.39</td>
                        <td align="right">8.63</td>
                        <td align="right">17.27</td>
                        <td align="right">20.24</td>
                        <td align="right">35.29</td>
                        <td align="right">27.95</td>
                        <td align="right">37.43</td>
                        <td align="right">20.58</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">1.42</td>
                        <td align="right">8.65</td>
                        <td align="right">17.40</td>
                        <td align="right">20.33</td>
                        <td align="right">35.24</td>
                        <td align="right">28.17</td>
                        <td align="right">37.83</td>
                        <td align="right">20.99</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">1.53</td>
                        <td align="right">142.08</td>
                        <td align="right">32.42</td>
                        <td align="right">39.68</td>
                        <td align="right">59.80</td>
                        <td align="right">54.90</td>
                        <td align="right">47.20</td>
                        <td align="right">22.13</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">1.52</td>
                        <td align="right">136.40</td>
                        <td align="right">33.43</td>
                        <td align="right">40.40</td>
                        <td align="right">61.02</td>
                        <td align="right">56.94</td>
                        <td align="right">47.46</td>
                        <td align="right">22.41</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">1.63</td>
                        <td align="right">135.18</td>
                        <td align="right">34.41</td>
                        <td align="right">42.19</td>
                        <td align="right">64.69</td>
                        <td align="right">59.54</td>
                        <td align="right">48.48</td>
                        <td align="right">23.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">2.15</td>
                        <td align="right">135.02</td>
                        <td align="right">61.90</td>
                        <td align="right">74.05</td>
                        <td align="right">109.99</td>
                        <td align="right">101.27</td>
                        <td align="right">67.98</td>
                        <td align="right">29.40</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0202"/>
               <p class="title">
                  <b>Tabulka B.5. Doby testů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)</b>
               </p>
               <table summary="Doby testů (s) pro stroj č. 2 (Intel Mobile Pentium III 800)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">27.11</td>
                        <td align="right">338.75</td>
                        <td align="right">3.34</td>
                        <td align="right">3.41</td>
                        <td align="right">8.30</td>
                        <td align="right">8.39</td>
                        <td align="right">41.25</td>
                        <td align="right">4.54</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">10.45</td>
                        <td align="right">118.32</td>
                        <td align="right">2.74</td>
                        <td align="right">2.83</td>
                        <td align="right">6.04</td>
                        <td align="right">6.15</td>
                        <td align="right">38.88</td>
                        <td align="right">3.48</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">10.34</td>
                        <td align="right">113.34</td>
                        <td align="right">2.59</td>
                        <td align="right">2.70</td>
                        <td align="right">5.81</td>
                        <td align="right">5.90</td>
                        <td align="right">38.85</td>
                        <td align="right">3.40</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">12.09</td>
                        <td align="right">115.89</td>
                        <td align="right">2.60</td>
                        <td align="right">2.71</td>
                        <td align="right">5.87</td>
                        <td align="right">5.95</td>
                        <td align="right">38.96</td>
                        <td align="right">3.30</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">13.93</td>
                        <td align="right">115.17</td>
                        <td align="right">2.78</td>
                        <td align="right">2.89</td>
                        <td align="right">6.12</td>
                        <td align="right">6.25</td>
                        <td align="right">38.98</td>
                        <td align="right">3.46</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">10.32</td>
                        <td align="right">338.58</td>
                        <td align="right">2.58</td>
                        <td align="right">2.69</td>
                        <td align="right">5.77</td>
                        <td align="right">5.82</td>
                        <td align="right">38.84</td>
                        <td align="right">3.38</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">10.29</td>
                        <td align="right">323.92</td>
                        <td align="right">2.48</td>
                        <td align="right">2.54</td>
                        <td align="right">5.45</td>
                        <td align="right">5.59</td>
                        <td align="right">38.34</td>
                        <td align="right">3.15</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">10.28</td>
                        <td align="right">110.02</td>
                        <td align="right">2.54</td>
                        <td align="right">2.54</td>
                        <td align="right">5.43</td>
                        <td align="right">5.54</td>
                        <td align="right">38.31</td>
                        <td align="right">3.21</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">10.21</td>
                        <td align="right">292.84</td>
                        <td align="right">2.39</td>
                        <td align="right">2.51</td>
                        <td align="right">5.22</td>
                        <td align="right">5.43</td>
                        <td align="right">38.23</td>
                        <td align="right">3.11</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">10.28</td>
                        <td align="right">109.95</td>
                        <td align="right">2.46</td>
                        <td align="right">2.54</td>
                        <td align="right">5.45</td>
                        <td align="right">5.57</td>
                        <td align="right">38.36</td>
                        <td align="right">3.15</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">10.27</td>
                        <td align="right">109.98</td>
                        <td align="right">2.47</td>
                        <td align="right">2.55</td>
                        <td align="right">5.44</td>
                        <td align="right">5.50</td>
                        <td align="right">38.30</td>
                        <td align="right">3.17</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">12.09</td>
                        <td align="right">115.92</td>
                        <td align="right">2.60</td>
                        <td align="right">2.70</td>
                        <td align="right">5.88</td>
                        <td align="right">5.95</td>
                        <td align="right">39.00</td>
                        <td align="right">3.28</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">10.22</td>
                        <td align="right">112.86</td>
                        <td align="right">2.44</td>
                        <td align="right">2.56</td>
                        <td align="right">5.43</td>
                        <td align="right">5.55</td>
                        <td align="right">38.43</td>
                        <td align="right">3.16</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">10.21</td>
                        <td align="right">112.85</td>
                        <td align="right">2.44</td>
                        <td align="right">2.57</td>
                        <td align="right">5.47</td>
                        <td align="right">5.55</td>
                        <td align="right">38.37</td>
                        <td align="right">3.13</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">10.22</td>
                        <td align="right">97.99</td>
                        <td align="right">2.39</td>
                        <td align="right">2.49</td>
                        <td align="right">5.36</td>
                        <td align="right">5.38</td>
                        <td align="right">38.33</td>
                        <td align="right">3.04</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">10.22</td>
                        <td align="right">112.85</td>
                        <td align="right">2.48</td>
                        <td align="right">2.56</td>
                        <td align="right">5.47</td>
                        <td align="right">5.61</td>
                        <td align="right">38.32</td>
                        <td align="right">3.14</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">10.22</td>
                        <td align="right">112.86</td>
                        <td align="right">2.46</td>
                        <td align="right">2.58</td>
                        <td align="right">5.48</td>
                        <td align="right">5.58</td>
                        <td align="right">38.34</td>
                        <td align="right">3.13</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">8.53</td>
                        <td align="right">109.61</td>
                        <td align="right">2.49</td>
                        <td align="right">2.62</td>
                        <td align="right">5.51</td>
                        <td align="right">5.56</td>
                        <td align="right">38.39</td>
                        <td align="right">3.16</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">8.15</td>
                        <td align="right">111.03</td>
                        <td align="right">2.52</td>
                        <td align="right">2.69</td>
                        <td align="right">5.58</td>
                        <td align="right">5.70</td>
                        <td align="right">38.49</td>
                        <td align="right">3.14</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">8.17</td>
                        <td align="right">113.44</td>
                        <td align="right">2.61</td>
                        <td align="right">2.82</td>
                        <td align="right">5.83</td>
                        <td align="right">5.83</td>
                        <td align="right">38.95</td>
                        <td align="right">3.30</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">8.20</td>
                        <td align="right">112.54</td>
                        <td align="right">2.68</td>
                        <td align="right">2.78</td>
                        <td align="right">5.90</td>
                        <td align="right">6.03</td>
                        <td align="right">39.08</td>
                        <td align="right">3.37</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">8.17</td>
                        <td align="right">113.78</td>
                        <td align="right">2.62</td>
                        <td align="right">2.81</td>
                        <td align="right">5.78</td>
                        <td align="right">5.91</td>
                        <td align="right">38.94</td>
                        <td align="right">3.29</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">8.27</td>
                        <td align="right">112.73</td>
                        <td align="right">2.70</td>
                        <td align="right">2.77</td>
                        <td align="right">5.87</td>
                        <td align="right">5.96</td>
                        <td align="right">39.08</td>
                        <td align="right">3.34</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">8.21</td>
                        <td align="right">113.61</td>
                        <td align="right">2.61</td>
                        <td align="right">2.76</td>
                        <td align="right">5.78</td>
                        <td align="right">5.90</td>
                        <td align="right">38.99</td>
                        <td align="right">3.34</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">8.47</td>
                        <td align="right">112.76</td>
                        <td align="right">2.68</td>
                        <td align="right">2.79</td>
                        <td align="right">5.87</td>
                        <td align="right">6.02</td>
                        <td align="right">39.09</td>
                        <td align="right">3.29</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">26.33</td>
                        <td align="right">339.61</td>
                        <td align="right">3.38</td>
                        <td align="right">3.53</td>
                        <td align="right">8.52</td>
                        <td align="right">8.63</td>
                        <td align="right">41.33</td>
                        <td align="right">4.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">10.55</td>
                        <td align="right">118.53</td>
                        <td align="right">2.79</td>
                        <td align="right">2.82</td>
                        <td align="right">6.12</td>
                        <td align="right">6.19</td>
                        <td align="right">38.95</td>
                        <td align="right">3.55</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">10.46</td>
                        <td align="right">113.80</td>
                        <td align="right">2.64</td>
                        <td align="right">2.77</td>
                        <td align="right">6.05</td>
                        <td align="right">6.15</td>
                        <td align="right">38.78</td>
                        <td align="right">3.51</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">10.45</td>
                        <td align="right">116.24</td>
                        <td align="right">2.72</td>
                        <td align="right">2.80</td>
                        <td align="right">6.07</td>
                        <td align="right">6.17</td>
                        <td align="right">38.88</td>
                        <td align="right">3.45</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">10.46</td>
                        <td align="right">115.76</td>
                        <td align="right">2.70</td>
                        <td align="right">2.80</td>
                        <td align="right">6.02</td>
                        <td align="right">6.14</td>
                        <td align="right">38.79</td>
                        <td align="right">3.53</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">10.44</td>
                        <td align="right">339.86</td>
                        <td align="right">2.67</td>
                        <td align="right">2.81</td>
                        <td align="right">5.99</td>
                        <td align="right">6.12</td>
                        <td align="right">38.77</td>
                        <td align="right">3.55</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">8.68</td>
                        <td align="right">324.68</td>
                        <td align="right">2.51</td>
                        <td align="right">2.62</td>
                        <td align="right">5.77</td>
                        <td align="right">5.95</td>
                        <td align="right">38.30</td>
                        <td align="right">3.40</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">8.87</td>
                        <td align="right">98.53</td>
                        <td align="right">2.53</td>
                        <td align="right">2.55</td>
                        <td align="right">5.61</td>
                        <td align="right">5.78</td>
                        <td align="right">38.32</td>
                        <td align="right">3.23</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">8.67</td>
                        <td align="right">113.24</td>
                        <td align="right">2.57</td>
                        <td align="right">2.65</td>
                        <td align="right">5.80</td>
                        <td align="right">5.97</td>
                        <td align="right">38.39</td>
                        <td align="right">3.38</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">8.70</td>
                        <td align="right">109.79</td>
                        <td align="right">2.58</td>
                        <td align="right">2.65</td>
                        <td align="right">5.90</td>
                        <td align="right">6.10</td>
                        <td align="right">38.40</td>
                        <td align="right">3.41</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">8.53</td>
                        <td align="right">97.35</td>
                        <td align="right">2.38</td>
                        <td align="right">2.51</td>
                        <td align="right">5.38</td>
                        <td align="right">5.40</td>
                        <td align="right">38.32</td>
                        <td align="right">3.08</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0203"/>
               <p class="title">
                  <b>Tabulka B.6. Velikosti přeložených programů (kB) pro stroj č. 2 (Intel Mobile Pentium III 800)</b>
               </p>
               <table summary="Velikosti přeložených programů (kB) pro stroj č. 2 (Intel Mobile Pentium III 800)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">36</td>
                        <td align="right">176</td>
                        <td align="right">320</td>
                        <td align="right">364</td>
                        <td align="right">1132</td>
                        <td align="right">1176</td>
                        <td align="right">560</td>
                        <td align="right">436</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">32</td>
                        <td align="right">560</td>
                        <td align="right">252</td>
                        <td align="right">284</td>
                        <td align="right">860</td>
                        <td align="right">892</td>
                        <td align="right">396</td>
                        <td align="right">336</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">32</td>
                        <td align="right">592</td>
                        <td align="right">256</td>
                        <td align="right">288</td>
                        <td align="right">880</td>
                        <td align="right">916</td>
                        <td align="right">408</td>
                        <td align="right">340</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">32</td>
                        <td align="right">596</td>
                        <td align="right">428</td>
                        <td align="right">476</td>
                        <td align="right">1192</td>
                        <td align="right">1228</td>
                        <td align="right">512</td>
                        <td align="right">360</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">28</td>
                        <td align="right">556</td>
                        <td align="right">236</td>
                        <td align="right">268</td>
                        <td align="right">820</td>
                        <td align="right">852</td>
                        <td align="right">372</td>
                        <td align="right">316</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">32</td>
                        <td align="right">176</td>
                        <td align="right">256</td>
                        <td align="right">288</td>
                        <td align="right">992</td>
                        <td align="right">1024</td>
                        <td align="right">408</td>
                        <td align="right">340</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">32</td>
                        <td align="right">184</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">1020</td>
                        <td align="right">1056</td>
                        <td align="right">436</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">32</td>
                        <td align="right">600</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">940</td>
                        <td align="right">976</td>
                        <td align="right">436</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">32</td>
                        <td align="right">260</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">1060</td>
                        <td align="right">1096</td>
                        <td align="right">436</td>
                        <td align="right">388</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">32</td>
                        <td align="right">600</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">940</td>
                        <td align="right">976</td>
                        <td align="right">436</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">32</td>
                        <td align="right">600</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">940</td>
                        <td align="right">976</td>
                        <td align="right">436</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">32</td>
                        <td align="right">596</td>
                        <td align="right">428</td>
                        <td align="right">476</td>
                        <td align="right">1192</td>
                        <td align="right">1228</td>
                        <td align="right">512</td>
                        <td align="right">360</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">444</td>
                        <td align="right">492</td>
                        <td align="right">1244</td>
                        <td align="right">1280</td>
                        <td align="right">528</td>
                        <td align="right">404</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">444</td>
                        <td align="right">492</td>
                        <td align="right">1244</td>
                        <td align="right">1280</td>
                        <td align="right">528</td>
                        <td align="right">404</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">36</td>
                        <td align="right">868</td>
                        <td align="right">444</td>
                        <td align="right">492</td>
                        <td align="right">1248</td>
                        <td align="right">1284</td>
                        <td align="right">532</td>
                        <td align="right">412</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">444</td>
                        <td align="right">492</td>
                        <td align="right">1244</td>
                        <td align="right">1280</td>
                        <td align="right">528</td>
                        <td align="right">404</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">444</td>
                        <td align="right">492</td>
                        <td align="right">1244</td>
                        <td align="right">1280</td>
                        <td align="right">528</td>
                        <td align="right">404</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">40</td>
                        <td align="right">612</td>
                        <td align="right">452</td>
                        <td align="right">504</td>
                        <td align="right">1388</td>
                        <td align="right">1424</td>
                        <td align="right">536</td>
                        <td align="right">452</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">56</td>
                        <td align="right">656</td>
                        <td align="right">872</td>
                        <td align="right">956</td>
                        <td align="right">2028</td>
                        <td align="right">2068</td>
                        <td align="right">632</td>
                        <td align="right">512</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">440</td>
                        <td align="right">488</td>
                        <td align="right">1332</td>
                        <td align="right">1364</td>
                        <td align="right">524</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">760</td>
                        <td align="right">832</td>
                        <td align="right">1824</td>
                        <td align="right">1856</td>
                        <td align="right">608</td>
                        <td align="right">460</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">440</td>
                        <td align="right">488</td>
                        <td align="right">1332</td>
                        <td align="right">1364</td>
                        <td align="right">524</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">760</td>
                        <td align="right">832</td>
                        <td align="right">1824</td>
                        <td align="right">1856</td>
                        <td align="right">608</td>
                        <td align="right">460</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">440</td>
                        <td align="right">488</td>
                        <td align="right">1332</td>
                        <td align="right">1364</td>
                        <td align="right">524</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">760</td>
                        <td align="right">832</td>
                        <td align="right">1824</td>
                        <td align="right">1856</td>
                        <td align="right">608</td>
                        <td align="right">460</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">40</td>
                        <td align="right">176</td>
                        <td align="right">332</td>
                        <td align="right">376</td>
                        <td align="right">1104</td>
                        <td align="right">1152</td>
                        <td align="right">588</td>
                        <td align="right">456</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">32</td>
                        <td align="right">560</td>
                        <td align="right">264</td>
                        <td align="right">296</td>
                        <td align="right">856</td>
                        <td align="right">892</td>
                        <td align="right">412</td>
                        <td align="right">348</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">32</td>
                        <td align="right">592</td>
                        <td align="right">256</td>
                        <td align="right">292</td>
                        <td align="right">844</td>
                        <td align="right">880</td>
                        <td align="right">404</td>
                        <td align="right">344</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">32</td>
                        <td align="right">596</td>
                        <td align="right">380</td>
                        <td align="right">444</td>
                        <td align="right">1060</td>
                        <td align="right">1124</td>
                        <td align="right">488</td>
                        <td align="right">364</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">32</td>
                        <td align="right">556</td>
                        <td align="right">252</td>
                        <td align="right">288</td>
                        <td align="right">836</td>
                        <td align="right">868</td>
                        <td align="right">400</td>
                        <td align="right">336</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">32</td>
                        <td align="right">176</td>
                        <td align="right">256</td>
                        <td align="right">292</td>
                        <td align="right">944</td>
                        <td align="right">976</td>
                        <td align="right">404</td>
                        <td align="right">344</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">36</td>
                        <td align="right">184</td>
                        <td align="right">268</td>
                        <td align="right">304</td>
                        <td align="right">980</td>
                        <td align="right">1016</td>
                        <td align="right">436</td>
                        <td align="right">364</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">36</td>
                        <td align="right">868</td>
                        <td align="right">396</td>
                        <td align="right">460</td>
                        <td align="right">1224</td>
                        <td align="right">1292</td>
                        <td align="right">516</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">400</td>
                        <td align="right">468</td>
                        <td align="right">1116</td>
                        <td align="right">1180</td>
                        <td align="right">520</td>
                        <td align="right">388</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">36</td>
                        <td align="right">612</td>
                        <td align="right">408</td>
                        <td align="right">476</td>
                        <td align="right">1196</td>
                        <td align="right">1264</td>
                        <td align="right">528</td>
                        <td align="right">428</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">40</td>
                        <td align="right">872</td>
                        <td align="right">456</td>
                        <td align="right">508</td>
                        <td align="right">1388</td>
                        <td align="right">1424</td>
                        <td align="right">540</td>
                        <td align="right">456</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0301"/>
               <p class="title">
                  <b>Tabulka B.7. Doby překladů (s) pro stroj č. 3 (Athlon XP 1600+)</b>
               </p>
               <table summary="Doby překladů (s) pro stroj č. 3 (Athlon XP 1600+)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">0.34</td>
                        <td align="right">4.87</td>
                        <td align="right">4.00</td>
                        <td align="right">4.64</td>
                        <td align="right">9.15</td>
                        <td align="right">6.43</td>
                        <td align="right">8.04</td>
                        <td align="right">5.59</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">0.54</td>
                        <td align="right">44.12</td>
                        <td align="right">6.06</td>
                        <td align="right">7.04</td>
                        <td align="right">13.39</td>
                        <td align="right">9.58</td>
                        <td align="right">12.28</td>
                        <td align="right">8.40</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">0.74</td>
                        <td align="right">71.96</td>
                        <td align="right">9.25</td>
                        <td align="right">10.94</td>
                        <td align="right">19.29</td>
                        <td align="right">15.52</td>
                        <td align="right">20.47</td>
                        <td align="right">11.12</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">0.77</td>
                        <td align="right">73.79</td>
                        <td align="right">18.26</td>
                        <td align="right">22.57</td>
                        <td align="right">33.18</td>
                        <td align="right">30.57</td>
                        <td align="right">26.00</td>
                        <td align="right">11.94</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">0.69</td>
                        <td align="right">106.03</td>
                        <td align="right">9.26</td>
                        <td align="right">10.90</td>
                        <td align="right">18.78</td>
                        <td align="right">15.18</td>
                        <td align="right">21.22</td>
                        <td align="right">9.88</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">0.76</td>
                        <td align="right">4.71</td>
                        <td align="right">9.52</td>
                        <td align="right">11.21</td>
                        <td align="right">19.55</td>
                        <td align="right">15.54</td>
                        <td align="right">21.02</td>
                        <td align="right">11.40</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">0.78</td>
                        <td align="right">4.73</td>
                        <td align="right">9.63</td>
                        <td align="right">11.33</td>
                        <td align="right">19.54</td>
                        <td align="right">15.62</td>
                        <td align="right">21.32</td>
                        <td align="right">11.52</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">0.77</td>
                        <td align="right">73.97</td>
                        <td align="right">9.64</td>
                        <td align="right">11.16</td>
                        <td align="right">19.89</td>
                        <td align="right">15.50</td>
                        <td align="right">21.22</td>
                        <td align="right">11.46</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">0.75</td>
                        <td align="right">4.83</td>
                        <td align="right">9.42</td>
                        <td align="right">11.03</td>
                        <td align="right">19.20</td>
                        <td align="right">15.28</td>
                        <td align="right">20.96</td>
                        <td align="right">11.39</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">0.77</td>
                        <td align="right">73.18</td>
                        <td align="right">9.51</td>
                        <td align="right">11.15</td>
                        <td align="right">19.66</td>
                        <td align="right">15.56</td>
                        <td align="right">21.07</td>
                        <td align="right">11.45</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">0.77</td>
                        <td align="right">72.30</td>
                        <td align="right">9.48</td>
                        <td align="right">11.09</td>
                        <td align="right">19.80</td>
                        <td align="right">15.35</td>
                        <td align="right">20.97</td>
                        <td align="right">11.57</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">0.79</td>
                        <td align="right">72.77</td>
                        <td align="right">17.78</td>
                        <td align="right">22.08</td>
                        <td align="right">32.94</td>
                        <td align="right">30.40</td>
                        <td align="right">25.88</td>
                        <td align="right">11.85</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">0.83</td>
                        <td align="right">72.41</td>
                        <td align="right">17.81</td>
                        <td align="right">22.14</td>
                        <td align="right">32.78</td>
                        <td align="right">30.35</td>
                        <td align="right">25.99</td>
                        <td align="right">11.97</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">0.76</td>
                        <td align="right">76.44</td>
                        <td align="right">17.57</td>
                        <td align="right">21.87</td>
                        <td align="right">32.53</td>
                        <td align="right">29.75</td>
                        <td align="right">25.86</td>
                        <td align="right">11.92</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">0.82</td>
                        <td align="right">74.44</td>
                        <td align="right">18.34</td>
                        <td align="right">22.71</td>
                        <td align="right">33.75</td>
                        <td align="right">31.26</td>
                        <td align="right">26.70</td>
                        <td align="right">12.25</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">0.85</td>
                        <td align="right">74.23</td>
                        <td align="right">18.41</td>
                        <td align="right">22.84</td>
                        <td align="right">34.20</td>
                        <td align="right">31.47</td>
                        <td align="right">26.90</td>
                        <td align="right">12.66</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">0.89</td>
                        <td align="right">75.83</td>
                        <td align="right">19.28</td>
                        <td align="right">23.92</td>
                        <td align="right">36.08</td>
                        <td align="right">32.68</td>
                        <td align="right">27.42</td>
                        <td align="right">13.33</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">1.19</td>
                        <td align="right">80.21</td>
                        <td align="right">34.64</td>
                        <td align="right">46.62</td>
                        <td align="right">60.46</td>
                        <td align="right">64.84</td>
                        <td align="right">30.53</td>
                        <td align="right">13.76</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">0.85</td>
                        <td align="right">75.20</td>
                        <td align="right">18.98</td>
                        <td align="right">23.59</td>
                        <td align="right">35.75</td>
                        <td align="right">32.33</td>
                        <td align="right">26.96</td>
                        <td align="right">12.84</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">1.16</td>
                        <td align="right">84.26</td>
                        <td align="right">36.93</td>
                        <td align="right">49.73</td>
                        <td align="right">63.64</td>
                        <td align="right">68.04</td>
                        <td align="right">32.27</td>
                        <td align="right">14.32</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">0.89</td>
                        <td align="right">75.55</td>
                        <td align="right">19.11</td>
                        <td align="right">23.58</td>
                        <td align="right">35.50</td>
                        <td align="right">32.29</td>
                        <td align="right">26.89</td>
                        <td align="right">12.73</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">1.13</td>
                        <td align="right">78.16</td>
                        <td align="right">33.52</td>
                        <td align="right">45.30</td>
                        <td align="right">58.29</td>
                        <td align="right">62.36</td>
                        <td align="right">29.39</td>
                        <td align="right">12.91</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">0.86</td>
                        <td align="right">74.45</td>
                        <td align="right">19.28</td>
                        <td align="right">23.90</td>
                        <td align="right">36.28</td>
                        <td align="right">32.81</td>
                        <td align="right">27.28</td>
                        <td align="right">13.34</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">1.20</td>
                        <td align="right">80.58</td>
                        <td align="right">35.94</td>
                        <td align="right">46.65</td>
                        <td align="right">58.89</td>
                        <td align="right">66.83</td>
                        <td align="right">30.18</td>
                        <td align="right">13.35</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">0.81</td>
                        <td align="right">72.78</td>
                        <td align="right">17.17</td>
                        <td align="right">21.50</td>
                        <td align="right">32.47</td>
                        <td align="right">29.81</td>
                        <td align="right">24.97</td>
                        <td align="right">12.16</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0302"/>
               <p class="title">
                  <b>Tabulka B.8. Doby testů (s) pro stroj č. 3  (Athlon XP 1600+)</b>
               </p>
               <table summary="Doby testů (s) pro stroj č. 3  (Athlon XP 1600+)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">14.69</td>
                        <td align="right">180.71</td>
                        <td align="right">1.99</td>
                        <td align="right">2.02</td>
                        <td align="right">5.64</td>
                        <td align="right">5.68</td>
                        <td align="right">29.70</td>
                        <td align="right">2.64</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">6.90</td>
                        <td align="right">53.31</td>
                        <td align="right">1.51</td>
                        <td align="right">1.54</td>
                        <td align="right">3.77</td>
                        <td align="right">3.80</td>
                        <td align="right">26.91</td>
                        <td align="right">1.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">6.81</td>
                        <td align="right">52.45</td>
                        <td align="right">1.49</td>
                        <td align="right">1.54</td>
                        <td align="right">3.96</td>
                        <td align="right">4.00</td>
                        <td align="right">27.20</td>
                        <td align="right">1.71</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">6.95</td>
                        <td align="right">56.03</td>
                        <td align="right">1.58</td>
                        <td align="right">1.52</td>
                        <td align="right">3.75</td>
                        <td align="right">4.00</td>
                        <td align="right">27.32</td>
                        <td align="right">1.67</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">7.20</td>
                        <td align="right">62.32</td>
                        <td align="right">1.55</td>
                        <td align="right">1.58</td>
                        <td align="right">3.92</td>
                        <td align="right">3.95</td>
                        <td align="right">27.69</td>
                        <td align="right">1.76</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">7.19</td>
                        <td align="right">191.99</td>
                        <td align="right">1.55</td>
                        <td align="right">1.60</td>
                        <td align="right">3.88</td>
                        <td align="right">3.90</td>
                        <td align="right">27.66</td>
                        <td align="right">1.77</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">7.18</td>
                        <td align="right">176.53</td>
                        <td align="right">1.49</td>
                        <td align="right">1.58</td>
                        <td align="right">3.78</td>
                        <td align="right">3.81</td>
                        <td align="right">27.17</td>
                        <td align="right">1.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">7.19</td>
                        <td align="right">54.71</td>
                        <td align="right">1.48</td>
                        <td align="right">1.56</td>
                        <td align="right">3.71</td>
                        <td align="right">3.81</td>
                        <td align="right">26.97</td>
                        <td align="right">1.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">7.18</td>
                        <td align="right">148.23</td>
                        <td align="right">1.42</td>
                        <td align="right">1.50</td>
                        <td align="right">3.57</td>
                        <td align="right">3.62</td>
                        <td align="right">26.86</td>
                        <td align="right">1.62</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">6.79</td>
                        <td align="right">51.09</td>
                        <td align="right">1.44</td>
                        <td align="right">1.53</td>
                        <td align="right">3.71</td>
                        <td align="right">3.75</td>
                        <td align="right">26.59</td>
                        <td align="right">1.61</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">6.79</td>
                        <td align="right">51.27</td>
                        <td align="right">1.45</td>
                        <td align="right">1.50</td>
                        <td align="right">3.65</td>
                        <td align="right">3.65</td>
                        <td align="right">26.47</td>
                        <td align="right">1.63</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">6.98</td>
                        <td align="right">54.80</td>
                        <td align="right">1.50</td>
                        <td align="right">1.53</td>
                        <td align="right">3.73</td>
                        <td align="right">3.81</td>
                        <td align="right">27.02</td>
                        <td align="right">1.68</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">6.82</td>
                        <td align="right">53.82</td>
                        <td align="right">1.43</td>
                        <td align="right">1.50</td>
                        <td align="right">3.59</td>
                        <td align="right">3.65</td>
                        <td align="right">26.32</td>
                        <td align="right">1.61</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">6.81</td>
                        <td align="right">44.29</td>
                        <td align="right">1.42</td>
                        <td align="right">1.47</td>
                        <td align="right">3.51</td>
                        <td align="right">3.55</td>
                        <td align="right">26.36</td>
                        <td align="right">1.56</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">6.81</td>
                        <td align="right">53.57</td>
                        <td align="right">1.50</td>
                        <td align="right">1.56</td>
                        <td align="right">3.71</td>
                        <td align="right">3.72</td>
                        <td align="right">26.87</td>
                        <td align="right">1.64</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">6.80</td>
                        <td align="right">53.89</td>
                        <td align="right">1.48</td>
                        <td align="right">1.56</td>
                        <td align="right">3.68</td>
                        <td align="right">3.74</td>
                        <td align="right">26.92</td>
                        <td align="right">1.66</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">6.82</td>
                        <td align="right">51.72</td>
                        <td align="right">1.49</td>
                        <td align="right">1.54</td>
                        <td align="right">3.73</td>
                        <td align="right">3.81</td>
                        <td align="right">27.00</td>
                        <td align="right">1.66</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">6.01</td>
                        <td align="right">52.37</td>
                        <td align="right">1.51</td>
                        <td align="right">1.54</td>
                        <td align="right">3.80</td>
                        <td align="right">3.79</td>
                        <td align="right">27.13</td>
                        <td align="right">1.63</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">6.87</td>
                        <td align="right">54.50</td>
                        <td align="right">1.58</td>
                        <td align="right">1.58</td>
                        <td align="right">3.82</td>
                        <td align="right">3.89</td>
                        <td align="right">27.49</td>
                        <td align="right">1.71</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">5.91</td>
                        <td align="right">52.45</td>
                        <td align="right">1.64</td>
                        <td align="right">1.71</td>
                        <td align="right">3.95</td>
                        <td align="right">4.02</td>
                        <td align="right">29.15</td>
                        <td align="right">1.82</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">6.86</td>
                        <td align="right">54.48</td>
                        <td align="right">1.51</td>
                        <td align="right">1.52</td>
                        <td align="right">3.83</td>
                        <td align="right">3.86</td>
                        <td align="right">27.01</td>
                        <td align="right">1.66</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">5.91</td>
                        <td align="right">52.39</td>
                        <td align="right">1.48</td>
                        <td align="right">1.54</td>
                        <td align="right">3.79</td>
                        <td align="right">3.81</td>
                        <td align="right">26.92</td>
                        <td align="right">1.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">6.89</td>
                        <td align="right">54.40</td>
                        <td align="right">1.58</td>
                        <td align="right">1.58</td>
                        <td align="right">3.83</td>
                        <td align="right">3.94</td>
                        <td align="right">27.73</td>
                        <td align="right">1.73</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">5.91</td>
                        <td align="right">52.28</td>
                        <td align="right">1.51</td>
                        <td align="right">1.58</td>
                        <td align="right">3.83</td>
                        <td align="right">3.84</td>
                        <td align="right">26.95</td>
                        <td align="right">1.67</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">6.88</td>
                        <td align="right">46.24</td>
                        <td align="right">1.38</td>
                        <td align="right">1.47</td>
                        <td align="right">3.53</td>
                        <td align="right">3.72</td>
                        <td align="right">26.62</td>
                        <td align="right">1.55</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0303"/>
               <p class="title">
                  <b>Tabulka B.9. Velikosti přeložených programů (kB) pro stroj č. 3 (Athlon XP 1600+)</b>
               </p>
               <table summary="Velikosti přeložených programů (kB) pro stroj č. 3 (Athlon XP 1600+)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">40</td>
                        <td align="right">176</td>
                        <td align="right">332</td>
                        <td align="right">376</td>
                        <td align="right">1108</td>
                        <td align="right">1152</td>
                        <td align="right">588</td>
                        <td align="right">456</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">32</td>
                        <td align="right">564</td>
                        <td align="right">264</td>
                        <td align="right">296</td>
                        <td align="right">852</td>
                        <td align="right">888</td>
                        <td align="right">412</td>
                        <td align="right">352</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">32</td>
                        <td align="right">588</td>
                        <td align="right">256</td>
                        <td align="right">292</td>
                        <td align="right">840</td>
                        <td align="right">876</td>
                        <td align="right">404</td>
                        <td align="right">344</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">32</td>
                        <td align="right">596</td>
                        <td align="right">380</td>
                        <td align="right">444</td>
                        <td align="right">1052</td>
                        <td align="right">1116</td>
                        <td align="right">488</td>
                        <td align="right">368</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">32</td>
                        <td align="right">552</td>
                        <td align="right">252</td>
                        <td align="right">288</td>
                        <td align="right">828</td>
                        <td align="right">864</td>
                        <td align="right">400</td>
                        <td align="right">336</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">32</td>
                        <td align="right">176</td>
                        <td align="right">256</td>
                        <td align="right">292</td>
                        <td align="right">944</td>
                        <td align="right">976</td>
                        <td align="right">404</td>
                        <td align="right">344</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">36</td>
                        <td align="right">184</td>
                        <td align="right">268</td>
                        <td align="right">304</td>
                        <td align="right">980</td>
                        <td align="right">1016</td>
                        <td align="right">436</td>
                        <td align="right">364</td>
                     </tr>
                     <tr>
                        <td align="center">Op–7</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">268</td>
                        <td align="right">304</td>
                        <td align="right">884</td>
                        <td align="right">920</td>
                        <td align="right">436</td>
                        <td align="right">364</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">32</td>
                        <td align="right">260</td>
                        <td align="right">268</td>
                        <td align="right">304</td>
                        <td align="right">1152</td>
                        <td align="right">1188</td>
                        <td align="right">432</td>
                        <td align="right">364</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">268</td>
                        <td align="right">304</td>
                        <td align="right">884</td>
                        <td align="right">920</td>
                        <td align="right">436</td>
                        <td align="right">364</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">268</td>
                        <td align="right">304</td>
                        <td align="right">884</td>
                        <td align="right">920</td>
                        <td align="right">436</td>
                        <td align="right">360</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">32</td>
                        <td align="right">596</td>
                        <td align="right">380</td>
                        <td align="right">444</td>
                        <td align="right">1052</td>
                        <td align="right">1116</td>
                        <td align="right">488</td>
                        <td align="right">368</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">400</td>
                        <td align="right">468</td>
                        <td align="right">1108</td>
                        <td align="right">1176</td>
                        <td align="right">520</td>
                        <td align="right">388</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">36</td>
                        <td align="right">864</td>
                        <td align="right">396</td>
                        <td align="right">460</td>
                        <td align="right">1216</td>
                        <td align="right">1284</td>
                        <td align="right">516</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">400</td>
                        <td align="right">468</td>
                        <td align="right">1108</td>
                        <td align="right">1176</td>
                        <td align="right">520</td>
                        <td align="right">388</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">36</td>
                        <td align="right">608</td>
                        <td align="right">400</td>
                        <td align="right">468</td>
                        <td align="right">1108</td>
                        <td align="right">1172</td>
                        <td align="right">520</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">36</td>
                        <td align="right">612</td>
                        <td align="right">408</td>
                        <td align="right">476</td>
                        <td align="right">1188</td>
                        <td align="right">1256</td>
                        <td align="right">528</td>
                        <td align="right">428</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">48</td>
                        <td align="right">656</td>
                        <td align="right">632</td>
                        <td align="right">780</td>
                        <td align="right">1516</td>
                        <td align="right">1664</td>
                        <td align="right">596</td>
                        <td align="right">456</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">388</td>
                        <td align="right">452</td>
                        <td align="right">1136</td>
                        <td align="right">1204</td>
                        <td align="right">496</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">608</td>
                        <td align="right">748</td>
                        <td align="right">1456</td>
                        <td align="right">1596</td>
                        <td align="right">568</td>
                        <td align="right">436</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">388</td>
                        <td align="right">452</td>
                        <td align="right">1136</td>
                        <td align="right">1204</td>
                        <td align="right">496</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">608</td>
                        <td align="right">748</td>
                        <td align="right">1456</td>
                        <td align="right">1596</td>
                        <td align="right">568</td>
                        <td align="right">436</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">36</td>
                        <td align="right">600</td>
                        <td align="right">388</td>
                        <td align="right">452</td>
                        <td align="right">1136</td>
                        <td align="right">1200</td>
                        <td align="right">496</td>
                        <td align="right">408</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">48</td>
                        <td align="right">640</td>
                        <td align="right">608</td>
                        <td align="right">748</td>
                        <td align="right">1456</td>
                        <td align="right">1596</td>
                        <td align="right">568</td>
                        <td align="right">436</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">36</td>
                        <td align="right">872</td>
                        <td align="right">404</td>
                        <td align="right">472</td>
                        <td align="right">1324</td>
                        <td align="right">1392</td>
                        <td align="right">524</td>
                        <td align="right">436</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0401"/>
               <p class="title">
                  <b>Tabulka B.10. Doby překladů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)</b>
               </p>
               <table summary="Doby překladů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">0.25</td>
                        <td align="right">2.80</td>
                        <td align="right">3.04</td>
                        <td align="right">3.41</td>
                        <td align="right">7.10</td>
                        <td align="right">4.93</td>
                        <td align="right">6.01</td>
                        <td align="right">4.10</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">0.44</td>
                        <td align="right">42.65</td>
                        <td align="right">4.72</td>
                        <td align="right">5.41</td>
                        <td align="right">10.51</td>
                        <td align="right">7.55</td>
                        <td align="right">9.25</td>
                        <td align="right">6.26</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">0.62</td>
                        <td align="right">54.16</td>
                        <td align="right">7.58</td>
                        <td align="right">8.89</td>
                        <td align="right">15.57</td>
                        <td align="right">12.20</td>
                        <td align="right">15.88</td>
                        <td align="right">8.59</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">0.64</td>
                        <td align="right">53.58</td>
                        <td align="right">21.50</td>
                        <td align="right">27.36</td>
                        <td align="right">36.13</td>
                        <td align="right">36.94</td>
                        <td align="right">19.98</td>
                        <td align="right">9.42</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">0.59</td>
                        <td align="right">46.98</td>
                        <td align="right">7.25</td>
                        <td align="right">8.60</td>
                        <td align="right">14.76</td>
                        <td align="right">11.88</td>
                        <td align="right">15.88</td>
                        <td align="right">7.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">0.59</td>
                        <td align="right">2.48</td>
                        <td align="right">7.53</td>
                        <td align="right">8.76</td>
                        <td align="right">15.37</td>
                        <td align="right">12.09</td>
                        <td align="right">15.80</td>
                        <td align="right">8.70</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">0.61</td>
                        <td align="right">2.44</td>
                        <td align="right">7.50</td>
                        <td align="right">8.83</td>
                        <td align="right">15.28</td>
                        <td align="right">12.20</td>
                        <td align="right">16.33</td>
                        <td align="right">8.52</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">0.63</td>
                        <td align="right">2.83</td>
                        <td align="right">7.53</td>
                        <td align="right">8.76</td>
                        <td align="right">15.14</td>
                        <td align="right">12.05</td>
                        <td align="right">16.13</td>
                        <td align="right">8.72</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">0.65</td>
                        <td align="right">54.82</td>
                        <td align="right">7.59</td>
                        <td align="right">8.89</td>
                        <td align="right">15.63</td>
                        <td align="right">12.15</td>
                        <td align="right">16.05</td>
                        <td align="right">8.63</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">0.64</td>
                        <td align="right">54.62</td>
                        <td align="right">7.57</td>
                        <td align="right">8.96</td>
                        <td align="right">15.79</td>
                        <td align="right">12.37</td>
                        <td align="right">16.48</td>
                        <td align="right">8.99</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">0.66</td>
                        <td align="right">53.68</td>
                        <td align="right">21.43</td>
                        <td align="right">27.29</td>
                        <td align="right">36.26</td>
                        <td align="right">36.61</td>
                        <td align="right">19.86</td>
                        <td align="right">9.44</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">0.69</td>
                        <td align="right">54.54</td>
                        <td align="right">21.70</td>
                        <td align="right">27.20</td>
                        <td align="right">36.55</td>
                        <td align="right">36.86</td>
                        <td align="right">20.30</td>
                        <td align="right">9.45</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">0.69</td>
                        <td align="right">56.32</td>
                        <td align="right">21.21</td>
                        <td align="right">27.39</td>
                        <td align="right">36.49</td>
                        <td align="right">36.90</td>
                        <td align="right">20.42</td>
                        <td align="right">9.53</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">0.64</td>
                        <td align="right">57.55</td>
                        <td align="right">21.35</td>
                        <td align="right">27.04</td>
                        <td align="right">35.97</td>
                        <td align="right">36.39</td>
                        <td align="right">20.05</td>
                        <td align="right">9.48</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">0.68</td>
                        <td align="right">54.83</td>
                        <td align="right">21.41</td>
                        <td align="right">27.21</td>
                        <td align="right">36.40</td>
                        <td align="right">36.76</td>
                        <td align="right">20.26</td>
                        <td align="right">9.65</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">0.71</td>
                        <td align="right">55.98</td>
                        <td align="right">21.89</td>
                        <td align="right">27.58</td>
                        <td align="right">36.88</td>
                        <td align="right">36.94</td>
                        <td align="right">20.45</td>
                        <td align="right">9.86</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">0.80</td>
                        <td align="right">55.31</td>
                        <td align="right">22.86</td>
                        <td align="right">28.43</td>
                        <td align="right">38.79</td>
                        <td align="right">38.80</td>
                        <td align="right">20.93</td>
                        <td align="right">10.55</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">1.02</td>
                        <td align="right">61.61</td>
                        <td align="right">47.10</td>
                        <td align="right">61.65</td>
                        <td align="right">71.94</td>
                        <td align="right">80.44</td>
                        <td align="right">23.53</td>
                        <td align="right">11.26</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">0.77</td>
                        <td align="right">54.67</td>
                        <td align="right">22.19</td>
                        <td align="right">28.45</td>
                        <td align="right">38.75</td>
                        <td align="right">38.35</td>
                        <td align="right">20.38</td>
                        <td align="right">10.16</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">1.00</td>
                        <td align="right">59.44</td>
                        <td align="right">46.69</td>
                        <td align="right">59.98</td>
                        <td align="right">73.36</td>
                        <td align="right">79.91</td>
                        <td align="right">22.99</td>
                        <td align="right">10.75</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">0.77</td>
                        <td align="right">54.74</td>
                        <td align="right">22.30</td>
                        <td align="right">28.57</td>
                        <td align="right">38.28</td>
                        <td align="right">38.38</td>
                        <td align="right">20.27</td>
                        <td align="right">10.12</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">0.97</td>
                        <td align="right">60.52</td>
                        <td align="right">46.94</td>
                        <td align="right">59.98</td>
                        <td align="right">73.40</td>
                        <td align="right">80.52</td>
                        <td align="right">22.82</td>
                        <td align="right">10.75</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">0.79</td>
                        <td align="right">54.46</td>
                        <td align="right">22.47</td>
                        <td align="right">28.94</td>
                        <td align="right">38.70</td>
                        <td align="right">38.55</td>
                        <td align="right">20.50</td>
                        <td align="right">10.52</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">1.03</td>
                        <td align="right">59.89</td>
                        <td align="right">46.48</td>
                        <td align="right">60.05</td>
                        <td align="right">72.94</td>
                        <td align="right">79.90</td>
                        <td align="right">23.13</td>
                        <td align="right">10.97</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">0.25</td>
                        <td align="right">2.86</td>
                        <td align="right">2.52</td>
                        <td align="right">3.00</td>
                        <td align="right">5.65</td>
                        <td align="right">4.04</td>
                        <td align="right">6.45</td>
                        <td align="right">3.51</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">0.39</td>
                        <td align="right">42.18</td>
                        <td align="right">4.33</td>
                        <td align="right">4.96</td>
                        <td align="right">9.44</td>
                        <td align="right">6.77</td>
                        <td align="right">9.80</td>
                        <td align="right">5.56</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">0.51</td>
                        <td align="right">54.21</td>
                        <td align="right">6.26</td>
                        <td align="right">7.25</td>
                        <td align="right">12.85</td>
                        <td align="right">9.97</td>
                        <td align="right">14.64</td>
                        <td align="right">7.27</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">0.53</td>
                        <td align="right">55.18</td>
                        <td align="right">12.11</td>
                        <td align="right">15.97</td>
                        <td align="right">22.19</td>
                        <td align="right">22.47</td>
                        <td align="right">17.79</td>
                        <td align="right">7.78</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">0.51</td>
                        <td align="right">47.96</td>
                        <td align="right">6.32</td>
                        <td align="right">7.15</td>
                        <td align="right">12.38</td>
                        <td align="right">9.93</td>
                        <td align="right">15.60</td>
                        <td align="right">6.27</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">0.49</td>
                        <td align="right">2.53</td>
                        <td align="right">6.27</td>
                        <td align="right">7.13</td>
                        <td align="right">12.57</td>
                        <td align="right">10.08</td>
                        <td align="right">14.72</td>
                        <td align="right">7.19</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">0.63</td>
                        <td align="right">2.77</td>
                        <td align="right">6.81</td>
                        <td align="right">7.42</td>
                        <td align="right">12.90</td>
                        <td align="right">10.73</td>
                        <td align="right">14.22</td>
                        <td align="right">7.65</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">0.54</td>
                        <td align="right">55.89</td>
                        <td align="right">12.03</td>
                        <td align="right">16.18</td>
                        <td align="right">22.05</td>
                        <td align="right">22.82</td>
                        <td align="right">15.76</td>
                        <td align="right">7.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">0.54</td>
                        <td align="right">55.91</td>
                        <td align="right">11.95</td>
                        <td align="right">16.51</td>
                        <td align="right">22.04</td>
                        <td align="right">22.96</td>
                        <td align="right">16.19</td>
                        <td align="right">7.60</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">0.58</td>
                        <td align="right">55.57</td>
                        <td align="right">12.69</td>
                        <td align="right">16.99</td>
                        <td align="right">23.88</td>
                        <td align="right">23.69</td>
                        <td align="right">16.54</td>
                        <td align="right">8.27</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">0.73</td>
                        <td align="right">43.35</td>
                        <td align="right">21.34</td>
                        <td align="right">26.71</td>
                        <td align="right">36.60</td>
                        <td align="right">36.01</td>
                        <td align="right">19.87</td>
                        <td align="right">9.81</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0402"/>
               <p class="title">
                  <b>Tabulka B.11. Doby testů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)</b>
               </p>
               <table summary="Doby testů (s) pro stroj č. 4 (2 × Intel Xeon 2,2)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">13.06</td>
                        <td align="right">191.32</td>
                        <td align="right">1.76</td>
                        <td align="right">1.78</td>
                        <td align="right">4.10</td>
                        <td align="right">4.22</td>
                        <td align="right">27.88</td>
                        <td align="right">1.79</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">3.97</td>
                        <td align="right">27.20</td>
                        <td align="right">1.58</td>
                        <td align="right">1.44</td>
                        <td align="right">3.17</td>
                        <td align="right">3.33</td>
                        <td align="right">26.17</td>
                        <td align="right">1.40</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">3.93</td>
                        <td align="right">28.69</td>
                        <td align="right">1.39</td>
                        <td align="right">1.40</td>
                        <td align="right">3.08</td>
                        <td align="right">3.20</td>
                        <td align="right">26.48</td>
                        <td align="right">1.37</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">3.88</td>
                        <td align="right">28.23</td>
                        <td align="right">1.39</td>
                        <td align="right">1.43</td>
                        <td align="right">2.97</td>
                        <td align="right">3.16</td>
                        <td align="right">26.56</td>
                        <td align="right">1.38</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">3.92</td>
                        <td align="right">27.59</td>
                        <td align="right">1.43</td>
                        <td align="right">1.43</td>
                        <td align="right">3.03</td>
                        <td align="right">3.24</td>
                        <td align="right">26.46</td>
                        <td align="right">1.31</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">4.36</td>
                        <td align="right">191.00</td>
                        <td align="right">1.39</td>
                        <td align="right">1.40</td>
                        <td align="right">3.08</td>
                        <td align="right">3.19</td>
                        <td align="right">26.59</td>
                        <td align="right">1.34</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">3.86</td>
                        <td align="right">149.84</td>
                        <td align="right">1.36</td>
                        <td align="right">1.31</td>
                        <td align="right">2.90</td>
                        <td align="right">3.08</td>
                        <td align="right">26.19</td>
                        <td align="right">1.35</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">3.87</td>
                        <td align="right">135.75</td>
                        <td align="right">1.32</td>
                        <td align="right">1.87</td>
                        <td align="right">2.88</td>
                        <td align="right">3.03</td>
                        <td align="right">26.26</td>
                        <td align="right">1.32</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">3.86</td>
                        <td align="right">28.05</td>
                        <td align="right">1.34</td>
                        <td align="right">1.36</td>
                        <td align="right">3.05</td>
                        <td align="right">3.06</td>
                        <td align="right">26.12</td>
                        <td align="right">1.33</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">3.87</td>
                        <td align="right">28.34</td>
                        <td align="right">1.31</td>
                        <td align="right">1.37</td>
                        <td align="right">2.92</td>
                        <td align="right">3.03</td>
                        <td align="right">26.16</td>
                        <td align="right">1.39</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">3.87</td>
                        <td align="right">28.34</td>
                        <td align="right">1.36</td>
                        <td align="right">1.43</td>
                        <td align="right">3.02</td>
                        <td align="right">3.10</td>
                        <td align="right">26.34</td>
                        <td align="right">1.33</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">3.87</td>
                        <td align="right">29.86</td>
                        <td align="right">1.36</td>
                        <td align="right">1.39</td>
                        <td align="right">3.00</td>
                        <td align="right">3.10</td>
                        <td align="right">26.23</td>
                        <td align="right">1.35</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">3.86</td>
                        <td align="right">29.35</td>
                        <td align="right">1.33</td>
                        <td align="right">1.43</td>
                        <td align="right">3.01</td>
                        <td align="right">3.19</td>
                        <td align="right">26.22</td>
                        <td align="right">1.40</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">3.84</td>
                        <td align="right">27.56</td>
                        <td align="right">1.35</td>
                        <td align="right">1.87</td>
                        <td align="right">2.95</td>
                        <td align="right">3.13</td>
                        <td align="right">26.25</td>
                        <td align="right">1.24</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">3.87</td>
                        <td align="right">29.05</td>
                        <td align="right">1.33</td>
                        <td align="right">1.40</td>
                        <td align="right">3.04</td>
                        <td align="right">3.09</td>
                        <td align="right">26.26</td>
                        <td align="right">1.28</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">3.90</td>
                        <td align="right">28.96</td>
                        <td align="right">1.39</td>
                        <td align="right">1.42</td>
                        <td align="right">3.04</td>
                        <td align="right">3.11</td>
                        <td align="right">26.31</td>
                        <td align="right">1.35</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">3.92</td>
                        <td align="right">28.35</td>
                        <td align="right">1.35</td>
                        <td align="right">1.40</td>
                        <td align="right">3.10</td>
                        <td align="right">3.21</td>
                        <td align="right">26.28</td>
                        <td align="right">1.36</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">3.82</td>
                        <td align="right">28.54</td>
                        <td align="right">1.40</td>
                        <td align="right">1.47</td>
                        <td align="right">3.12</td>
                        <td align="right">3.12</td>
                        <td align="right">26.30</td>
                        <td align="right">1.39</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">3.88</td>
                        <td align="right">28.51</td>
                        <td align="right">1.40</td>
                        <td align="right">1.41</td>
                        <td align="right">3.09</td>
                        <td align="right">3.27</td>
                        <td align="right">26.30</td>
                        <td align="right">1.33</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">3.84</td>
                        <td align="right">29.38</td>
                        <td align="right">1.39</td>
                        <td align="right">1.49</td>
                        <td align="right">3.02</td>
                        <td align="right">3.18</td>
                        <td align="right">26.22</td>
                        <td align="right">1.35</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">3.88</td>
                        <td align="right">28.42</td>
                        <td align="right">1.41</td>
                        <td align="right">1.42</td>
                        <td align="right">3.03</td>
                        <td align="right">3.30</td>
                        <td align="right">26.31</td>
                        <td align="right">1.29</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">3.87</td>
                        <td align="right">28.65</td>
                        <td align="right">1.44</td>
                        <td align="right">1.43</td>
                        <td align="right">3.16</td>
                        <td align="right">3.18</td>
                        <td align="right">26.32</td>
                        <td align="right">1.33</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">3.88</td>
                        <td align="right">28.12</td>
                        <td align="right">1.44</td>
                        <td align="right">1.42</td>
                        <td align="right">3.18</td>
                        <td align="right">3.15</td>
                        <td align="right">26.20</td>
                        <td align="right">1.34</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">3.77</td>
                        <td align="right">28.85</td>
                        <td align="right">1.40</td>
                        <td align="right">1.50</td>
                        <td align="right">3.15</td>
                        <td align="right">3.25</td>
                        <td align="right">26.21</td>
                        <td align="right">1.34</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">12.81</td>
                        <td align="right">191.70</td>
                        <td align="right">1.77</td>
                        <td align="right">1.77</td>
                        <td align="right">4.09</td>
                        <td align="right">4.26</td>
                        <td align="right">28.30</td>
                        <td align="right">1.69</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">4.00</td>
                        <td align="right">28.04</td>
                        <td align="right">1.38</td>
                        <td align="right">1.38</td>
                        <td align="right">3.14</td>
                        <td align="right">3.21</td>
                        <td align="right">26.79</td>
                        <td align="right">1.37</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">4.02</td>
                        <td align="right">28.55</td>
                        <td align="right">1.37</td>
                        <td align="right">1.40</td>
                        <td align="right">2.93</td>
                        <td align="right">3.20</td>
                        <td align="right">26.45</td>
                        <td align="right">1.25</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">4.05</td>
                        <td align="right">28.42</td>
                        <td align="right">1.37</td>
                        <td align="right">1.41</td>
                        <td align="right">3.08</td>
                        <td align="right">3.15</td>
                        <td align="right">26.77</td>
                        <td align="right">1.24</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">4.02</td>
                        <td align="right">28.62</td>
                        <td align="right">1.44</td>
                        <td align="right">1.57</td>
                        <td align="right">3.08</td>
                        <td align="right">3.13</td>
                        <td align="right">26.78</td>
                        <td align="right">1.32</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">4.01</td>
                        <td align="right">194.54</td>
                        <td align="right">1.47</td>
                        <td align="right">1.44</td>
                        <td align="right">3.00</td>
                        <td align="right">3.05</td>
                        <td align="right">26.59</td>
                        <td align="right">1.27</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">4.02</td>
                        <td align="right">149.59</td>
                        <td align="right">1.38</td>
                        <td align="right">1.37</td>
                        <td align="right">3.20</td>
                        <td align="right">3.32</td>
                        <td align="right">26.69</td>
                        <td align="right">1.30</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">3.94</td>
                        <td align="right">27.76</td>
                        <td align="right">1.37</td>
                        <td align="right">1.36</td>
                        <td align="right">2.88</td>
                        <td align="right">3.02</td>
                        <td align="right">26.32</td>
                        <td align="right">1.25</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">4.00</td>
                        <td align="right">27.93</td>
                        <td align="right">1.37</td>
                        <td align="right">1.41</td>
                        <td align="right">3.02</td>
                        <td align="right">3.07</td>
                        <td align="right">26.76</td>
                        <td align="right">1.28</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">3.95</td>
                        <td align="right">33.77</td>
                        <td align="right">1.29</td>
                        <td align="right">1.38</td>
                        <td align="right">2.98</td>
                        <td align="right">3.13</td>
                        <td align="right">26.72</td>
                        <td align="right">1.25</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">3.85</td>
                        <td align="right">27.91</td>
                        <td align="right">1.30</td>
                        <td align="right">1.90</td>
                        <td align="right">2.93</td>
                        <td align="right">3.13</td>
                        <td align="right">26.61</td>
                        <td align="right">1.27</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div class="table">
               <a id="tabB0403"/>
               <p class="title">
                  <b>Tabulka B.12. Velikosti přeložených programů (kB) pro stroj č. 4 (2 × Intel Xeon 2,2)</b>
               </p>
               <table summary="Velikosti přeložených programů (kB) pro stroj č. 4 (2 × Intel Xeon 2,2)" width="100%" border="1">
                  <colgroup>
                     <col align="center"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                     <col align="right"/>
                  </colgroup>
                  <thead>
                     <tr>
                        <th align="center">optim.</th>
                        <th align="center">patgen</th>
                        <th align="center">opatgen</th>
                        <th align="center">tex</th>
                        <th align="center">etex</th>
                        <th align="center">pdftex</th>
                        <th align="center">pdfetex</th>
                        <th align="center">omega</th>
                        <th align="center">dvipdfm</th>
                     </tr>
                  </thead>
                  <tbody>
                     <tr>
                        <td align="center">Op–0</td>
                        <td align="right">36</td>
                        <td align="right">208</td>
                        <td align="right">324</td>
                        <td align="right">368</td>
                        <td align="right">1144</td>
                        <td align="right">1188</td>
                        <td align="right">568</td>
                        <td align="right">440</td>
                     </tr>
                     <tr>
                        <td align="center">Op–1</td>
                        <td align="right">32</td>
                        <td align="right">608</td>
                        <td align="right">260</td>
                        <td align="right">296</td>
                        <td align="right">904</td>
                        <td align="right">940</td>
                        <td align="right">412</td>
                        <td align="right">352</td>
                     </tr>
                     <tr>
                        <td align="center">Op–2</td>
                        <td align="right">32</td>
                        <td align="right">644</td>
                        <td align="right">264</td>
                        <td align="right">300</td>
                        <td align="right">908</td>
                        <td align="right">944</td>
                        <td align="right">420</td>
                        <td align="right">348</td>
                     </tr>
                     <tr>
                        <td align="center">Op–3</td>
                        <td align="right">32</td>
                        <td align="right">644</td>
                        <td align="right">476</td>
                        <td align="right">556</td>
                        <td align="right">1264</td>
                        <td align="right">1348</td>
                        <td align="right">508</td>
                        <td align="right">376</td>
                     </tr>
                     <tr>
                        <td align="center">Op–4</td>
                        <td align="right">32</td>
                        <td align="right">560</td>
                        <td align="right">260</td>
                        <td align="right">296</td>
                        <td align="right">892</td>
                        <td align="right">928</td>
                        <td align="right">412</td>
                        <td align="right">340</td>
                     </tr>
                     <tr>
                        <td align="center">Op–5</td>
                        <td align="right">32</td>
                        <td align="right">208</td>
                        <td align="right">264</td>
                        <td align="right">300</td>
                        <td align="right">1008</td>
                        <td align="right">1044</td>
                        <td align="right">420</td>
                        <td align="right">348</td>
                     </tr>
                     <tr>
                        <td align="center">Op–6</td>
                        <td align="right">32</td>
                        <td align="right">208</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">1044</td>
                        <td align="right">1080</td>
                        <td align="right">452</td>
                        <td align="right">368</td>
                     </tr>
                     <tr>
                        <td align="center">Op–8</td>
                        <td align="right">32</td>
                        <td align="right">332</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">1240</td>
                        <td align="right">1276</td>
                        <td align="right">448</td>
                        <td align="right">368</td>
                     </tr>
                     <tr>
                        <td align="center">Op–9</td>
                        <td align="right">32</td>
                        <td align="right">668</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">952</td>
                        <td align="right">988</td>
                        <td align="right">452</td>
                        <td align="right">368</td>
                     </tr>
                     <tr>
                        <td align="center">Op–10</td>
                        <td align="right">32</td>
                        <td align="right">668</td>
                        <td align="right">276</td>
                        <td align="right">312</td>
                        <td align="right">952</td>
                        <td align="right">988</td>
                        <td align="right">452</td>
                        <td align="right">368</td>
                     </tr>
                     <tr>
                        <td align="center">Op–11</td>
                        <td align="right">32</td>
                        <td align="right">644</td>
                        <td align="right">476</td>
                        <td align="right">556</td>
                        <td align="right">1264</td>
                        <td align="right">1348</td>
                        <td align="right">508</td>
                        <td align="right">376</td>
                     </tr>
                     <tr>
                        <td align="center">Op–12</td>
                        <td align="right">36</td>
                        <td align="right">664</td>
                        <td align="right">512</td>
                        <td align="right">596</td>
                        <td align="right">1336</td>
                        <td align="right">1416</td>
                        <td align="right">532</td>
                        <td align="right">396</td>
                     </tr>
                     <tr>
                        <td align="center">Op–13</td>
                        <td align="right">36</td>
                        <td align="right">664</td>
                        <td align="right">512</td>
                        <td align="right">596</td>
                        <td align="right">1336</td>
                        <td align="right">1416</td>
                        <td align="right">532</td>
                        <td align="right">396</td>
                     </tr>
                     <tr>
                        <td align="center">Op–14</td>
                        <td align="right">36</td>
                        <td align="right">684</td>
                        <td align="right">508</td>
                        <td align="right">592</td>
                        <td align="right">1448</td>
                        <td align="right">1536</td>
                        <td align="right">532</td>
                        <td align="right">396</td>
                     </tr>
                     <tr>
                        <td align="center">Op–15</td>
                        <td align="right">36</td>
                        <td align="right">664</td>
                        <td align="right">512</td>
                        <td align="right">596</td>
                        <td align="right">1336</td>
                        <td align="right">1416</td>
                        <td align="right">532</td>
                        <td align="right">396</td>
                     </tr>
                     <tr>
                        <td align="center">Op–16</td>
                        <td align="right">36</td>
                        <td align="right">664</td>
                        <td align="right">512</td>
                        <td align="right">596</td>
                        <td align="right">1336</td>
                        <td align="right">1416</td>
                        <td align="right">532</td>
                        <td align="right">396</td>
                     </tr>
                     <tr>
                        <td align="center">Op–17</td>
                        <td align="right">40</td>
                        <td align="right">668</td>
                        <td align="right">520</td>
                        <td align="right">608</td>
                        <td align="right">1440</td>
                        <td align="right">1520</td>
                        <td align="right">540</td>
                        <td align="right">444</td>
                     </tr>
                     <tr>
                        <td align="center">Op–18</td>
                        <td align="right">48</td>
                        <td align="right">712</td>
                        <td align="right">1004</td>
                        <td align="right">1208</td>
                        <td align="right">2116</td>
                        <td align="right">2316</td>
                        <td align="right">628</td>
                        <td align="right">492</td>
                     </tr>
                     <tr>
                        <td align="center">Op–19</td>
                        <td align="right">36</td>
                        <td align="right">648</td>
                        <td align="right">484</td>
                        <td align="right">568</td>
                        <td align="right">1368</td>
                        <td align="right">1452</td>
                        <td align="right">520</td>
                        <td align="right">428</td>
                     </tr>
                     <tr>
                        <td align="center">Op–20</td>
                        <td align="right">48</td>
                        <td align="right">692</td>
                        <td align="right">972</td>
                        <td align="right">1164</td>
                        <td align="right">2048</td>
                        <td align="right">2236</td>
                        <td align="right">600</td>
                        <td align="right">472</td>
                     </tr>
                     <tr>
                        <td align="center">Op–21</td>
                        <td align="right">36</td>
                        <td align="right">648</td>
                        <td align="right">484</td>
                        <td align="right">568</td>
                        <td align="right">1368</td>
                        <td align="right">1452</td>
                        <td align="right">520</td>
                        <td align="right">428</td>
                     </tr>
                     <tr>
                        <td align="center">Op–22</td>
                        <td align="right">48</td>
                        <td align="right">692</td>
                        <td align="right">972</td>
                        <td align="right">1164</td>
                        <td align="right">2048</td>
                        <td align="right">2236</td>
                        <td align="right">600</td>
                        <td align="right">472</td>
                     </tr>
                     <tr>
                        <td align="center">Op–23</td>
                        <td align="right">36</td>
                        <td align="right">648</td>
                        <td align="right">484</td>
                        <td align="right">568</td>
                        <td align="right">1368</td>
                        <td align="right">1452</td>
                        <td align="right">520</td>
                        <td align="right">428</td>
                     </tr>
                     <tr>
                        <td align="center">Op–24</td>
                        <td align="right">48</td>
                        <td align="right">692</td>
                        <td align="right">972</td>
                        <td align="right">1164</td>
                        <td align="right">2048</td>
                        <td align="right">2236</td>
                        <td align="right">600</td>
                        <td align="right">472</td>
                     </tr>
                     <tr>
                        <td align="center">Op–25</td>
                        <td align="right">40</td>
                        <td align="right">208</td>
                        <td align="right">332</td>
                        <td align="right">376</td>
                        <td align="right">1156</td>
                        <td align="right">1200</td>
                        <td align="right">652</td>
                        <td align="right">464</td>
                     </tr>
                     <tr>
                        <td align="center">Op–26</td>
                        <td align="right">32</td>
                        <td align="right">608</td>
                        <td align="right">264</td>
                        <td align="right">300</td>
                        <td align="right">904</td>
                        <td align="right">936</td>
                        <td align="right">436</td>
                        <td align="right">356</td>
                     </tr>
                     <tr>
                        <td align="center">Op–27</td>
                        <td align="right">32</td>
                        <td align="right">644</td>
                        <td align="right">264</td>
                        <td align="right">296</td>
                        <td align="right">900</td>
                        <td align="right">932</td>
                        <td align="right">432</td>
                        <td align="right">352</td>
                     </tr>
                     <tr>
                        <td align="center">Op–28</td>
                        <td align="right">32</td>
                        <td align="right">644</td>
                        <td align="right">384</td>
                        <td align="right">444</td>
                        <td align="right">1108</td>
                        <td align="right">1168</td>
                        <td align="right">508</td>
                        <td align="right">384</td>
                     </tr>
                     <tr>
                        <td align="center">Op–29</td>
                        <td align="right">32</td>
                        <td align="right">560</td>
                        <td align="right">260</td>
                        <td align="right">292</td>
                        <td align="right">888</td>
                        <td align="right">920</td>
                        <td align="right">428</td>
                        <td align="right">348</td>
                     </tr>
                     <tr>
                        <td align="center">Op–30</td>
                        <td align="right">32</td>
                        <td align="right">208</td>
                        <td align="right">264</td>
                        <td align="right">296</td>
                        <td align="right">992</td>
                        <td align="right">1024</td>
                        <td align="right">432</td>
                        <td align="right">352</td>
                     </tr>
                     <tr>
                        <td align="center">Op–31</td>
                        <td align="right">32</td>
                        <td align="right">208</td>
                        <td align="right">268</td>
                        <td align="right">300</td>
                        <td align="right">1000</td>
                        <td align="right">1032</td>
                        <td align="right">428</td>
                        <td align="right">368</td>
                     </tr>
                     <tr>
                        <td align="center">Op–32</td>
                        <td align="right">36</td>
                        <td align="right">684</td>
                        <td align="right">384</td>
                        <td align="right">444</td>
                        <td align="right">1244</td>
                        <td align="right">1308</td>
                        <td align="right">504</td>
                        <td align="right">404</td>
                     </tr>
                     <tr>
                        <td align="center">Op–33</td>
                        <td align="right">36</td>
                        <td align="right">664</td>
                        <td align="right">388</td>
                        <td align="right">448</td>
                        <td align="right">1120</td>
                        <td align="right">1184</td>
                        <td align="right">504</td>
                        <td align="right">400</td>
                     </tr>
                     <tr>
                        <td align="center">Op–34</td>
                        <td align="right">36</td>
                        <td align="right">668</td>
                        <td align="right">396</td>
                        <td align="right">456</td>
                        <td align="right">1240</td>
                        <td align="right">1304</td>
                        <td align="right">516</td>
                        <td align="right">460</td>
                     </tr>
                     <tr>
                        <td align="center">Op–35</td>
                        <td align="right">36</td>
                        <td align="right">688</td>
                        <td align="right">516</td>
                        <td align="right">604</td>
                        <td align="right">1580</td>
                        <td align="right">1668</td>
                        <td align="right">540</td>
                        <td align="right">460</td>
                     </tr>
                  </tbody>
               </table>
            </div>
         </div>
         <div class="appendix" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="app03"/>Příloha C. Kompletní ukázky profilů</h2>
                  </div>
               </div>
            </div>
            <p>
               <span class="application">PatGen</span>
            </p>
            <p>„<span class="quote">Přímý</span>“ profil:</p>
            <pre class="programlisting">
Flat profile:

Each sample counts as 0.01 seconds.
  %  cumulative self            self  total
 time  seconds seconds  calls  s/call s/call name
 90.73  11.16  11.16   463824  0.00   0.00  readword
  5.28  11.81   0.65   463824  0.00   0.00  hyphenate
  1.63  12.01   0.20  9222606  0.00   0.00  eoln
  1.06  12.14   0.13   463824  0.00   0.00  changedots
  1.06  12.27   0.13   463824  0.00   0.00  doword
  0.16  12.29   0.02       18  0.00   0.68  dodictionary
  0.08  12.30   0.01        2  0.01   0.01  deletebadpatterns
  0.00  12.30   0.00   463844  0.00   0.00  eof
  0.00  12.30   0.00   463825  0.00   0.00  readln
  0.00  12.30   0.00     2439  0.00   0.00  zinsertcpat
  0.00  12.30   0.00     1522  0.00   0.00  zinsertpattern
  0.00  12.30   0.00     1522  0.00   0.00  znewtrieop
  0.00  12.30   0.00     1282  0.00   0.00  firstcfit
  0.00  12.30   0.00      758  0.00   0.00  zunpackc
  0.00  12.30   0.00      602  0.00   0.00  firstfit
  0.00  12.30   0.00      389  0.00   0.00  zunpack
  0.00  12.30   0.00       71  0.00   0.00  fprintreal
  0.00  12.30   0.00       22  0.00   0.00  kpse_fopen_trace
  0.00  12.30   0.00       21  0.00   0.00  cmdline
  0.00  12.30   0.00       21  0.00   0.00  xfopen
  0.00  12.30   0.00       19  0.00   0.00  initcounttrie
  0.00  12.30   0.00       18  0.00   0.00  collectcounttrie
  0.00  12.30   0.00       18  0.00   0.00  ztraversecounttrie
  0.00  12.30   0.00       12  0.00   0.00  xmalloc
  0.00  12.30   0.00        4  0.00   0.00  concat3
  0.00  12.30   0.00        4  0.00   0.00  xrealloc
  0.00  12.30   0.00        3  0.00   0.00  element
  0.00  12.30   0.00        3  0.00   0.00
                                       kpse_filename_component
  0.00  12.30   0.00        3  0.00   0.00  xdirname
  0.00  12.30   0.00        3  0.00   0.00  xputenv
  0.00  12.30   0.00        3  0.00   0.00  zinput2ints
  0.00  12.30   0.00        2  0.00   0.00  CopyFirst
  0.00  12.30   0.00        2  0.00   0.00  StripFirst
  0.00  12.30   0.00        2  0.00   0.00  xstrdup
  0.00  12.30   0.00        2  0.00   0.00  zdeletepatterns
  0.00  12.30   0.00        2  0.00   0.00  zinput3ints
  0.00  12.30   0.00        1  0.00   0.00  expand_symlinks
  0.00  12.30   0.00        1  0.00   0.00  find_suffix
  0.00  12.30   0.00        1  0.00   0.00  initialize
  0.00  12.30   0.00        1  0.00   0.00  initpatterntrie
  0.00  12.30   0.00        1  0.00   0.00  kpse_absolute_p
  0.00  12.30   0.00        1  0.00   0.00  kpse_fclose_trace
  0.00  12.30   0.00        1  0.00   0.00  kpse_set_progname
  0.00  12.30   0.00        1  0.00   0.00
                                        kpse_set_program_name
  0.00  12.30   0.00        1  0.00  12.30  mainbody
  0.00  12.30   0.00        1  0.00   0.00  parsearguments
  0.00  12.30   0.00        1  0.00   0.00  readpatterns
  0.00  12.30   0.00        1  0.00   0.00  readtranslate
  0.00  12.30   0.00        1  0.00   0.00  remove_dots
  0.00  12.30   0.00        1  0.00   0.00  selfdir
  0.00  12.30   0.00        1  0.00   0.00  xgetcwd
  0.00  12.30   0.00        1  0.00   0.00  zfindletters
  0.00  12.30   0.00        1  0.00   0.00  zoutputpatterns
</pre>
         </div>
         <div class="appendix" lang="cs">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="app04"/>Příloha D. Obsah CD</h2>
                  </div>
               </div>
            </div>
            <p>
		Součástí této práce je také CD. Disk je ve formátu Rock Ridge s rozšířením Joliet.
	</p>
            <p>
		Obsah:
		</p>
            <div class="itemizedlist">
               <ul type="disc">
                  <li>
                     <p>Zdrojový kód této práce ve formátu XML (podle DTD DocBook), samotná práce v několika různých formátech.</p>
                  </li>
                  <li>
                     <p>Zdrojové kódy aplikací použitých pro testy a všechna testovací data.</p>
                  </li>
                  <li>
                     <p>Kompletní výsledky testů a všechny přeložené programy.</p>
                  </li>
                  <li>
                     <p>Kompletní výstupy profilů uvedených v části <a href="#sec0402" title="Ukázky profilování">„Ukázky profilování“</a>.</p>
                  </li>
                  <li>
                     <p>Zdrojové kódy a dokumentace k programu UPatGen.</p>
                  </li>
               </ul>
            </div>
            <p>
	
            </p>
         </div>
         <div class="bibliography">
            <div class="titlepage">
               <div>
                  <div>
                     <h2 class="title">
                        <a id="d0e12013"/>Bibliografie</h2>
                  </div>
               </div>
            </div>
            <div class="bibliodiv">
               <div class="biblioentry">
                  <p>[<span class="abbrev">Liang</span>] <span class="author">
                        <span class="firstname">Franklin Mark</span> 
                        <span class="surname">Liang</span>: </span>
                     <span class="title">
                        <i>Word Hy-phen-a-tion by Com-put-er</i>, </span>
                     <span class="publisher">
                        <span class="publishername">Department of Computer Science, Stanford University, </span>
                     </span>
                     <span class="pubdate">1983, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">PGRev</span>] <span class="title">
                        <i>Pattern Generation Revisited</i>, </span>
                     <span class="authorgroup">
                        <span class="firstname">David</span> 
                        <span class="surname">Antoš</span> a <span class="firstname">Petr</span> 
                        <span class="surname">Sojka</span>: </span>
                     <span class="publisher">
                        <span class="publishername">EuroTeX 2001 Proceedings, </span>
                     </span>
                     <span class="pagenums">s. 7-17, </span>
                     <span class="pubdate">2001, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">GVzUni</span>] <span class="title">
                        <i>Generování vzorů dělení slov v UNICODE</i>, </span>
                     <span class="authorgroup">
                        <span class="firstname">David</span> 
                        <span class="surname">Antoš</span> a <span class="firstname">Petr</span> 
                        <span class="surname">Sojka</span>: </span>
                     <span class="publisher">
                        <span class="publishername">SLT 2001, </span>
                     </span>
                     <span class="pagenums">s. 23-32, </span>
                     <span class="pubdate">2001, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Thai</span>] <span class="title">
                        <i>Thai Segmentation Pattern Generation by OPatGen</i>, </span>
                     <span class="authorgroup">
                        <span class="firstname">David</span> 
                        <span class="surname">Antoš</span> a <span class="firstname">Petr</span> 
                        <span class="surname">Sojka</span>: </span>
                     <span class="publisher">
                        <span class="publishername">TUGboat, Volume 23 (2002), </span>
                     </span>
                     <span class="pagenums">s. 111-118, </span>
                     <span class="pubdate">2002, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Optim</span>] <span class="author">
                        <span class="firstname">Jeff</span> 
                        <span class="surname">Covey</span>: </span>
                     <span class="title">
                        <i>Optimization</i>, </span>
                     <span class="publisher">
                        <span class="publishername">Freshmeat, </span>
                     </span>
                     <span class="pubdate">2000, <a href="http://freshmeat.net/articles/view/186/" target="_top">http://freshmeat.net/articles/view/186/</a>, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Antos</span>] <span class="author">
                        <span class="firstname">David</span> 
                        <span class="surname">Antoš</span>: </span>
                     <span class="title">
                        <i>PatLib, Pattern Manipulating Library</i>, </span>
                     <span class="publisher">
                        <span class="publishername">Diplomová práce, Fakulta informatiky Masarykovy univerzity v Brně, </span>
                     </span>
                     <span class="pubdate">2001, <a href="http://www.fi.muni.cz/~xantos/patlib/" target="_top">http://www.fi.muni.cz/~xantos/patlib/</a>, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Mach</span>] <span class="author">
                        <span class="firstname">David</span> 
                        <span class="surname">Macháček</span>: </span>
                     <span class="title">
                        <i>Přebíjející vzory ve zpracování přirozeného jazyka</i>, </span>
                     <span class="publisher">
                        <span class="publishername">Diplomová práce, Fakulta informatiky Masarykovy univerzity v Brně, </span>
                     </span>
                     <span class="pubdate">2003, <a href="http://www.fi.muni.cz/~xmachac1/I999/" target="_top">http://www.fi.muni.cz/~xmachac1/I999/</a>, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Myth</span>] <span class="title">
                        <i>GCC Myths and Facts</i>, </span>
                     <span class="author">
                        <span class="firstname">Joao</span> 
                        <span class="surname">Seabra</span>: </span>
                     <span class="publisher">
                        <span class="publishername">Freshmeat, </span>
                     </span>
                     <span class="pubdate">2003, <a href="http://freshmeat.net/articles/view/730/" target="_top">http://freshmeat.net/articles/view/730/</a>, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">COptim</span>] <span class="title">
                        <i>Optimization of Computer Programs in C</i>, </span>
                     <span class="author">
                        <span class="firstname">Michael E.</span> 
                        <span class="surname">Lee</span>: </span>
                     <span class="pubdate">1997, <a href="http://www.leto.net/docs/C-optimization.html" target="_top">http://www.leto.net/docs/C-optimization.html</a>, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Judy</span>] <span class="title">
                        <i>Judy library documentation</i>, </span>
                     <span class="authorgroup">
                        <span class="firstname">Alan</span> 
                        <span class="surname">Silverstein</span> a <span class="firstname">Doug</span> 
                        <span class="surname">Baskins</span>: </span>
                     <span class="pubdate">2002, <a href="http://judy.sourceforge.net/" target="_top">http://judy.sourceforge.net/</a>, <a href="http://sourceforge.net/projects/judy/" target="_top">http://sourceforge.net/projects/judy/</a>, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Tetex</span>] <span class="title">
                        <i>teTeX Manual</i>, </span>
                     <span class="author">
                        <span class="firstname">Thomas</span> 
                        <span class="surname">Esser</span>: </span>
                     <span class="pubdate">součást distribuce teTeX, 2003, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Web</span>] <span class="title">
                        <i>Literate Programming</i>, </span>
                     <span class="author">
                        <span class="firstname">Donald E.</span> 
                        <span class="surname">Knuth</span>: </span>
                     <span class="pubdate">The Computer Journal, 1983, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">Texbook</span>] <span class="title">
                        <i>The Texbook</i>, </span>
                     <span class="author">
                        <span class="firstname">Donald E.</span> 
                        <span class="surname">Knuth</span>: </span>
                     <span class="publisher">
                        <span class="publishername">Addison-Wesley, </span>
                     </span>
                     <span class="isbn">0-201-13447-0, </span>
                     <span class="pubdate">1996, </span>
                  </p>
               </div>
               <div class="biblioentry">
                  <p>[<span class="abbrev">CWeb</span>] <span class="title">
                        <i>The CWEB System of Structured Documentation</i>, </span>
                     <span class="authorgroup">
                        <span class="firstname">Donald E.</span> 
                        <span class="surname">Knuth</span> a <span class="firstname">Silvio</span> 
                        <span class="surname">Levy</span>: </span>
                     <span class="pubdate">2002, <a href="http://www-cs-faculty.stanford.edu/~knuth/cweb.html" target="_top">http://www-cs-faculty.stanford.edu/~knuth/cweb.html</a>, </span>
                  </p>
               </div>
            </div>
         </div>
      </div>
   </body>
</html>